Удаление UIPickerView Blue Highlight - PullRequest
2 голосов
/ 24 декабря 2010

В течение некоторого времени я пытался удалить синюю подсветку в 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: alt text

PS: это окно выбора не имеет индикатора выбора и настроено. Тем не менее, настройка не имеет ничего общего с проблемой. Это просто потому, что внутри ячейки средства выбора есть объект, который наследует UIView, и используется viewForRow.

1 Ответ

0 голосов
/ 08 января 2011
...