在Apple PhotoScroller示例中,3个可缩放图像显示在UIPageViewController
中。您可以缩放这些图像并在它们之间进行页面,即使它们仍然被缩放。我的应用程序使用PhotoScroller中的代码,唯一的区别是我的UIPageViewController
是我的应用程序中另一个UIViewController
的子视图控制器 - 即分页功能包含在视图层次结构中。在Apple的版本中,UIPageViewController
是根视图控制器(实际上由故事板设置)。在我的代码中,除非我将内容返回到未缩放的比例,否则我不会获得分页行为。对于我的应用程序,我不想强迫用户这样做。我需要做什么才能按照我想要的方式工作?
更新 我已确定将页面视图控制器设置为根视图控制器是手动导致Apple示例代码显示不需要的行为。也就是说,在app delegate中创建页面视图控制器
// assign the first page to the pageViewController (our rootViewController)
UIPageViewController *pageViewController = [[UIPageViewController alloc] init];
pageViewController.dataSource = self;
[pageViewController setViewControllers:@[pageZero]
direction:UIPageViewControllerNavigationDirectionForward
animated:NO
completion:NULL];
self.window.rootViewController = pageViewController;
使缩放的图像简单地在边缘反弹,而不是缩放到下一个图像。原始代码是:
// assign the first page to the pageViewController (our rootViewController)
UIPageViewController *pageViewController = (UIPageViewController *)self.window.rootViewController;
pageViewController.dataSource = self;
[pageViewController setViewControllers:@[pageZero]
direction:UIPageViewControllerNavigationDirectionForward
animated:NO
completion:NULL];
为什么这会在图像缩放时破坏滚动行为?
解决
UIPageViewController必须正确启动,如
_pageViewController = [[UIPageViewController alloc] initWithTransitionStyle:UIPageViewControllerTransitionStyleScroll navigationOrientation:UIPageViewControllerNavigationOrientationHorizontal options:nil];
我只是打电话给alloc] init]
。
答案 0 :(得分:0)
为了即使在放大图片时浏览UIPageViewController
,我建议创建单独的可缩放UIScrollview
以包含每个单独的图像,然后将它们作为子视图添加到每个分页页面(和不可缩放的)UIScrollview
;这样,通过分离手势接收器,您可以在分页时保持放大图像。
答案 1 :(得分:0)
UIPageViewController
必须正确启动,如
_pageViewController = [[UIPageViewController alloc] initWithTransitionStyle:UIPageViewControllerTransitionStyleScroll navigationOrientation:UIPageViewControllerNavigationOrientationHorizontal options:nil];
我只是将alloc] init]
称为storyboard
的替代,这还不够。