У меня есть некоторые pageViewControllers
, и я положил их внутри scrollView
для прокрутки по вертикали.ИОС - PageViewController внутри ScrollView
Все работает отлично, пока я не изменить страницу любого pageViewController
- если страница не первым, то pageViewController
не реагирует на вертикальную прокрутку.
иерархия просмотров:
mainViewControllers посмотреть
Scrollview
- pageViewControllers посмотреть
И наконец выяснилось!
Я заблокировал распознаватель жеста pageViewController
, когда он находится в вертикальных направлениях. И теперь это работает!
в pageViewController.m
:
- (BOOL) gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer
{
if ([gestureRecognizer isKindOfClass:[UIPanGestureRecognizer class]]){
UIPanGestureRecognizer *pan = gestureRecognizer;
if(ABS([pan velocityInView:self.view].y) > ABS([pan velocityInView:self.view].x)){
return NO;
}
}
return YES;
}
Не знаете, как кто-то может поднять вопрос, что требует случайного угадывания возможных причин. Покажите код, как вы настраиваете иерархию представлений, любые жесты, которые вы добавляете ... – Wain
@Wain добавлена иерархия. Я не создаю никаких распознавателей жестов, просто используя scrollView и pageViewController и поставляя viewControllers в pageViewController, используя объект dataSource. –