UITableView позволяет двум ячейкам иметь выбранный стиль одновременно - PullRequest
0 голосов
/ 23 октября 2009

Я создал UItableView с использованием шаблона XCode по умолчанию и настроил его на отображение пяти строк. Я выбираю первую ячейку на столе. Когда я выбираю другую ячейку, я замечаю, что первая остается выбранной, пока не уберу палец со второй.

образец: http://img190.imageshack.us/img190/7184/cellsz.jpg

Я хочу, чтобы ячейка была выделена при касании, а не при касании удалить. Я искал в сети и в документации Apple, но я не нашел, какой метод вызывается, когда пользователь касается экрана для выбора.

У кого-нибудь есть информация об этом?

Ответы [ 3 ]

2 голосов
/ 03 ноября 2009

Наконец мне удалось подавить эффект двойного выбора.

Ячейка выбирается, когда система обнаруживает в ней событие касания. Прежде чем он будет выделен, ячейка будет выделена при прикосновении.

Чтобы решить эту проблему, я должен переопределить метод - (void)setHighlighted:(BOOL)highlighted animated:(BOOL)animated в своем пользовательском UITableViewCell и ничего не делать в этом методе.

Таким образом, таблица никогда не будет иметь две выбранные ячейки стиля одновременно.

цитата после редактирования

Это решение достаточно для меня, но это не решает мою первую просьбу изменить выбор ячейки на "touch in" событие вместо события "touch out".

ну ... я предполагаю, что это невозможно. Если бы у нас была эта опция, мы могли бы выбрать ячейку, когда мы просто хотели прокрутить табличное представление.

1 голос
/ 23 октября 2009

Я не знаю ответа на ваш вопрос, но есть предложение. Вы можете отметить выбранную строку галочкой в ​​вашем

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath

метод делегата. А затем позвоните [tableView deselectRowAtIndexPath:indexPath].

0 голосов
/ 23 октября 2009

Нет фреймворка для выбора нескольких строк. У Мориона есть хороший способ сделать это с помощью галочек. Вы также можете посмотреть эту статью Мэтта Галлахера, где он реализует то, что вы хотите.

...