2012-02-07 3 views
1

Я испытываю странное поведение с UIPageViewController в моем проекте. Я реализовал методы viewControllerBeforeViewController и viewControllerAfterViewController, и они отлично работают, когда я прокручиваю палец в PageViewController. Я также хочу, чтобы страницы поворачивались, когда пользователь нажимает на левую и правую область PageViewController, как это происходит на iBook.UIPageViewController различное поведение между салфеткой и краном

Когда пользователь нажимает на одном из углов правильного метода (viewControllerAfterViewController или viewControllerBeforeViewController) называется, и я вернусь действительный UIViewController как я, когда пользователь пойло между страницами. К сожалению, после жестов кран страница не поворачивается, и метод didFinishAnimating не вызывается. Если после нажатия, я выполняю жестов салфетки, страница поворачивается с анимацией завитка, но вызывается только метод делегата didFinishAnimating.

Довольно странно, не так ли? Похоже, что UIPageViewController уже загрузил viewcontroller, но не запускает анимацию, пока я не выполню жест жестов.

Одним из возможных решений моей проблемы было бы обнаружение жестов салфетки и нажатия, ничего не делать в методах делегата и перевернуть страницы через setViewControllers:direction:animated:completion.

Это не проблема для меня, чтобы обнаружить этот жест, так как я делаю это уже на мой проект, но я хочу понять, почему UIPageViewController ведет себя таким странным образом

Спасибо!

+2

Я нашел решение. Я реализовал gestureRecognizerShouldBegin, я установил, что мой диспетчер представлений является делегатом для TapGestureRecognizer моего PageViewController, и я всегда возвращал YES. Теперь я могу использовать краны и салфетки для навигации по страницам. – user1194348

+0

Сделайте это, чтобы проголосовать за это! СПАСИБО! – Raspu

ответ

0

Это может быть связанная с этим проблема, но она очень похожа, поэтому, возможно, она заслуживает упоминания здесь. Иногда, когда вы настраиваете UIPageViewController, вы обнаружите, что обратные жесты (предыдущая страница) касаются и прокручивают оба действия, но с помощью жестов вперед (следующая страница) работает салфетка, но не крана.

Это, как правило, потому, что границы корневого UIView UIViewController, в которых установлен вложенный UIPageViewController, были неправильно установлены. Вы должны помнить о том, чтобы явно установить эти границы, как правило, на границы устройства. Например, на iPad:

self.view = [[UIView alloc] initWithFrame:CGRectMake(0.0, 0.0, 768.0, 1024.0)] ; 
+0

Добавьте теги к вашему вопросу, какая версия и т. Д. Будет полезна. – Mutant

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