Отличие ударов по UITableViewCell в целом от ударов по его дополнительной кнопке в частности

Я хотел бы реализовать UITableViewController он работает аналогично представлению " Эпизоды" (в разделе " Мои подкасты") в приложении " Подкасты" для iOS 7 в том смысле, что его ячейки должны выполнить один переход, если я нажму на (левую часть) ячейки, и выполнить другой переход, если я нажму на вспомогательный вид камеры.

мой UITableViewController реализует оба tableView:didSelectRowAtIndexPath: а также tableView:accessoryButtonTappedForRowWithIndexPath: от UITableViewDelegate Однако вызывается только первый метод, независимо от того, нажимаю ли я на кнопку доступа к ячейке или где-то еще внутри ячейки.

Так как же провести необходимое различие? Я предполагаю, что было бы возможно разместить UITapGestureRecognizer на камеру contentView и использовать его обработчик событий вместо tableView:didSelectRowAtIndexPath: Надеюсь, есть и более простая схема.

1 ответ

Решение

Тем временем я нашел то, что кажется правильным ответом здесь:

iOS сделает различие и назовет tableView:didSelectRowAtIndexPath: или же tableView:accessoryButtonTappedForRowWithIndexPath: если аксессуар (как установлено в IB) является кнопкой раскрытия подробностей (или кнопкой подробностей), но не является ли это индикатором раскрытия. Действительно, приложение Apple Podcasts использует кнопку детализации в описанном контексте.

Это соответствующая выдержка из (более старой версии) документации:

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

Другие вопросы по тегам