UIGestureRecognizer, блокирующий прокрутку табличного представления

Я использую пользовательское 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 propery моего UIGestureRecognizer установлен на NO, таким образом, это не вмешивается в касания.

Справка ценится.Спасибо!

8
задан indragie 20 July 2010 в 23:35
поделиться

2 ответа

У меня была строка в моем методе touchesBegan , которая устанавливала для свойства state распознавателя жестов значение UIGestureRecognizerStateBegan . Удаление этой строки, кажется, решает проблему.

3
ответ дан 5 December 2019 в 04:45
поделиться

UIGestureRecognizer имеет свойство cancelsTouchesInView, для которого по умолчанию установлено значение ДА. Это означает, что касания в UIView отменяются при распознавании жеста. Попробуйте установить для него значение NO, чтобы UIScrollView мог получать дальнейшие события касания.

9
ответ дан 5 December 2019 в 04:45
поделиться
Другие вопросы по тегам:

Похожие вопросы: