В течение некоторого времени я пытался удалить синюю подсветку в UIPickerView, когда вы используете делегат pickerView:viewForRow:forComponent:reusingView:
.
Я уверен, что многие здесь были там и хотели убрать эту уродливую голубую подсветку в UIPickerView.
У UIPickerView
есть UITableView
, а точнее - UIPickerTable
, внутри которого есть клетки, в которых лежат ваши UILabels/UIViews/UIImageViews
или что-то еще
Логически, если это вид таблицы, то мы можем просто получить доступ к ячейке и setSelectionStyle:UITableViewCellSelectionStyleNone
верно?
Неправильно.
UIPickerTable
является частным классом API и не позволяет вам устанавливать что-либо там.
Мне удалось получить все подпредставления в моем окне выбора.
<code>[[myPickerView subviews] objectAtIndex:someIndexValue];
Итак, я попробовал это в pickerView:didSelectRow:
и pickerView:viewForRow:
<code>NSIndexPath *path = [[[myPickerView subviews] objectAtIndex:5] indexPathForSelectedRow];
[[[[myPickerView subviews] objectAtIndex:5] cellForRowAtIndexPath:path] setSelectionStyle:UITableViewCellSelectionStyleNone];
И это:
<code>[[[myPickerView subviews] objectAtIndex:5] setSelectionStyle:UITableViewCellSelectionStyleNone];
Никто из них не работал, потому что это личное. Дайте мне эту ошибку:
* Завершение работы приложения из-за необработанного исключения «NSInvalidArgumentException», причина: '- [UIPickerTable setSelectionStyle:]: нераспознанный селектор, отправленный экземпляру 0x64479a0' *
Я знаю о настройке кадра view
в размере pickerView:rowHeightForComponent:
, а затем о:
<code>label.UserInteractionEnabled = YES;
Перед возвратом по
pickerView:viewForRow
методу.
Но на самом деле это не удаляет выделение, оно просто закрывает и удаляет возможность UIPickerView для автоматической прокрутки, когда какой-то элемент просто нажимается.
Кто-нибудь знает, как я могу удалить эту синюю подсветку с UIPickerView
с UILabel/UIView/UIImageView
внутри?
Я НЕ говорю о выборе индикатора.
Это подсветка, которая появляется при нажатии на изображение внутри pickerView:
PS: это окно выбора не имеет индикатора выбора и настроено. Тем не менее, настройка не имеет ничего общего с проблемой. Это просто потому, что внутри ячейки средства выбора есть объект, который наследует UIView, и используется viewForRow
.