Обработка прикосновенийBegan в UITableViewCell отключает didSelectRowAtIndexPath - PullRequest
6 голосов
/ 31 мая 2009

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

Как с этим обращаться? Я хочу, чтобы событие touch всплывало в цепочке респондента после обработки touchesBegan. Как я могу это сделать?

Спасибо.

1 Ответ

13 голосов
/ 31 мая 2009

Я уверен, что вы видите, что это происходит, потому что вы переопределяете метод, который был ранее определен для суперкласса. Это означает, что события не вызываются.

Вы пытались позвонить [super touchesBegan]? таким образом обрабатываются все исходные данные. и вы можете переопределить жест смахивания.

или другой вариант - вызвать делегата при обнаружении касания в вашем собственном методе касаний.

что-то вроде (возможно, у вас также будут реализации других сенсорных событий)

-(void) touchesBegan
{
 //logic to detect tap only.
 [tablecell.delegate didSelectRowAtIndexPath:(some way to determin touched row)]
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...