Я использую собственный подкласс UIGestureRecognizer
для отслеживания жестов в моем классе InfoView
. Класс InfoView
является подвидом пользовательского подкласса UITableViewCell
с именем InfoCell
.
Я добавил свой распознаватель жестов в свой корневой вид (родительский вид всего остального на экране, потому что цель моего пользовательского распознавателя жестов — разрешить перетаскивание InfoCell
представлений между таблицами). Теперь все работает как надо, кроме одного. Я использую следующий код в своем подклассе UIGestureRecognizer
для обнаружения касаний в представлении InfoView
:
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
UIView *touchView = [[touches anyObject] view];
if ([touchView isKindOfClass:[InfoView class]]) {
// Do stuff
}
Проблема здесь в том, что касания объекта InfoView
перехватываются, поэтому они не перенаправляются в UITableView
, который содержит InfoCell
, который является родительским представлением InfoView
. Это означает, что я больше не могу прокручивать представление таблицы, перетаскивая представление InfoView
, что является проблемой, поскольку InfoView
покрывает все InfoCell
.
Есть ли способ перенаправить касания на представление таблицы, чтобы оно могло прокручиваться? Я уже пробовал кучу вещей:
[super touchesBegan:touches withEvent:event];
[touchView.superview.superview touchesBegan:touches withEvent:event];
(touchView.superview.superview
получает ссылку на своего родителя UITableView
)
Но пока ничего не получилось. Кроме того, свойство cancelsTouchesInView
моего UIGestureRecognizer
установлено на NO
, так что это не мешает прикосновениям.
Помощь приветствуется. Спасибо!