Я использую собственный подкласс 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
, так что это не мешает прикосновениям.
Помощь приветствуется.Спасибо!