繁体   English   中英

与子视图控制器分页滚动视图

[英]Paging scroll view with child view controllers

使用分页实现水平滚动视图的最佳做法是什么,每页有一个视图控制器?

由于iOS5具有用于视图控制器容器/包含的API,因此PageControl示例仍然是实现此功能的最佳方法吗?

我知道这个问题有点旧,但是从iOS 6开始,UIPageViewController有一个名为UIPageViewControllerTransitionStyleScroll的新过渡样式属性,它允许你将页面控制器用于像你这样的用例,只需在页面之间滚动而不是iBooks样式的页面卷曲过渡。

您还应该观看2012 WWDC视频编号223 - 使用滚动视图增强用户体验 ,它们基本上将使用您描述的方法的旧应用程序转换为具有滚动样式转换的新UIPageViewController。

我的答案是,这取决于你的目标。 如果您想尽可能高效地创建应用程序,我只会使用示例代码中的方式。 我以前用过它,我会再做一次。

另一方面,如果您的目标是了解视图控制器包含,它是如何工作以及如何使用它,这可能是一个很好的案例来尝试它。 如果您这样做,请不要忘记查看WWDC视频“实施UIViewController遏制”(https://developer.apple.com/videos/wwdc/2011/)。

出现iOS5的最佳实践是使用与PageControl示例相同的方法。 这是一个控制器类(注意不是视图控制器)。 使用每个页面的子视图控制器。

到目前为止,没有记录使用iOS5中包含的视图控制器包含方法实现分页滚动视图的更好方法。

我认为UIPageViewController可以横向移动:

- (id)initWithTransitionStyle:(UIPageViewControllerTransitionStyle)style navigationOrientation:(UIPageViewControllerNavigationOrientation)navigationOrientation options:(NSDictionary *)options

enum {
    UIPageViewControllerNavigationOrientationHorizontal = 0,
    UIPageViewControllerNavigationOrientationVertical = 1
};
typedef NSInteger UIPageViewControllerNavigationOrientation;

http://developer.apple.com/library/ios/#documentation/UIKit/Reference/UIPageViewControllerClassReferenceClassRef/UIPageViewControllerClassReference.html

如果将View Controllers视图(myViewControllerOne.view)添加到UIScrollView - 然后适当地将它们框架化为水平显示 - 当用户与滚动视图内部的视图交互时,将调用View Controller中的方法。

我的意思是,如果您将MyViewControllerOne.view作为滚动视图内的子视图,当您滚动到滚动视图的“页面”并按下按钮时,将调用MyViewControllerOne中的附加方法(IBAction等)。

这应该为您提供所需的所有功能,例如添加UI元素,表格,另一个滚动视图等。这些元素将从其原始视图控制器进行控制。

希望这可以帮助!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM