2013-07-06 4 views
1

У меня есть некоторые 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; 
} 
+1

Не знаете, как кто-то может поднять вопрос, что требует случайного угадывания возможных причин. Покажите код, как вы настраиваете иерархию представлений, любые жесты, которые вы добавляете ... – Wain

+0

@Wain добавлена ​​иерархия. Я не создаю никаких распознавателей жестов, просто используя scrollView и pageViewController и поставляя viewControllers в pageViewController, используя объект dataSource. –

ответ

1

Установили вы в scrollView.canCancelContentTouches = NO;?

+0

Спасибо, но это не помогло. –

+0

Итак, я понял, что у вас несколько 'pageViewControllers' позволяет говорить один под другим в' scrollview', и вы хотите вертикальную прокрутку внутри 'pageViewControllers'. Это верно? – soryngod

+0

Почти. Я хочу прокрутить scrollView вертикально и перевернуть страницы внутри pageControllers по горизонтали. –

Смежные вопросы