Поднимите событие выбора (didSelectRowAtIndexPath), когда постукивает подвид UITableViewCell - PullRequest
3 голосов
/ 21 июня 2011

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

Другими словами: я хочу, чтобы подпредставление стало "прозрачным для события""- Я хочу, чтобы события проходили через / через него и регистрировались в базовой ячейке.

Есть предложения?На других языках я бы поднял событие.Новичок в Objective-C и Какао и пока не смог найти ответ.

Заранее спасибо.

Ответы [ 2 ]

14 голосов
/ 21 июня 2011

Попробуйте установить для свойства userInteractionEnabled вашего представления значение NO.

Это заставит игнорировать все сенсорные события, и тогда представления под ним смогут перехватывать эти события.

0 голосов
/ 21 июня 2011

Мне приходит в голову несколько способов:

Я полагаю, что переводом "поднять событие" будет отправка уведомления, и в этом случае вы можете посмотреть NSNotification и NSNotificationCenter.Довольно просто.

При желании вы можете добавить ссылку на объект, который следует протоколу UITableViewDelegate для каждой ячейки, и при создании ячейки назначить эту ссылку объекту, который вы хотите обработать,когда прослушивается подпредставление, отправьте сообщение didSelectRowAtIndexPath на эту ссылку.

Лично я бы выбрал второе, потому что я не большой поклонник уведомлений.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...