2013-11-29 3 views
0

С помощью раскадровки вы можете легко настроить ячейку с подзонами и вставить действия этих подзонов непосредственно в контроллер таблицы через - (IBAction)handle:(id)sender;
Но есть возможно ли сделать что-то подобное, без раскадровки или наконечника?
У меня есть пользовательская ячейка и пользовательский контроллер таблицы.
Задайте цель/действие подсмотра UITableViewCell внутри UITableViewController, без раскадровки

  • Я не могу вставить действие внутри реализации ячейки, потому что оно должно запускать материал из контроллера.
  • Я могу использовать UIGesture внутри контроллера, tableView:cellForRowAtIndexPath:, но каждый раз, когда он называется, он вставляет жест для ячейки. Конечно, я могу справиться с этим ...

Так что я задаюсь вопросом, существует ли «простой» способ реализовать действие подматрицы ячейки внутри контроллера таблицы, например, IBAction, без раскадровки или наконечника ? Спасибо. B.R.

ответ

1

Если у вас уже есть пользовательский tableViewCell, вы можете добавить UITapGestureRecognizer к этому представлению.

Вам необходимо сделать подкласс UITableViewCell и применить метод - awakeFromNib. Там вы можете добавить распознаватель жестов в представление внутри ячейки.

Это не полное решение, но это может быть хорошим началом.

+0

Дело в том, что у меня нет раскадровки или нитки. Я хотел бы сделать все программно. Итак, если я поместил реализацию tap в пользовательский класс ячеек, я не могу вызвать материал из класса контроллера таблицы, например: представить новый контроллер ... – user3048615

+0

Я бы рекомендовал создать файл NIB с помощью одного tableViewCell. Чем вы можете использовать '[UITableView registerNib: forReusableIdentifier:];'. Когда вы используете '- dequeCellForReusaleIdentifier:', вы загружаете и настраиваете NIB. В NIB вы создаете прототип для ячейки, добавляете распознаватель и подключаете розетки и так далее. Это ЛУЧШАЯ практика. –

+0

Я только что прочитал это и подумал, что могу добавить некоторую информацию. Если вы действительно не хотите использовать Nibs, вы также можете зарегистрировать свой собственный класс и делать все программно в классе. Затем вы реализуете протокол для ячейки и устанавливаете свой контроллер как делегат ячейки в '- tableView: cellForRowAtIndexPath:' –

Смежные вопросы