ScrollView with Paging

时间:2013-12-30 10:56:37

标签: ios

我在ScrollView中添加了3 UIViewController,就像这样

[self addChildViewController:[self.storyboard instantiateViewControllerWithIdentifier:@"view1"]];
[self addChildViewController:[self.storyboard instantiateViewControllerWithIdentifier:@"view2"]];
[self addChildViewController:[self.storyboard instantiateViewControllerWithIdentifier:@"view3"]];

我怎样才能找到可见的内容?

2 个答案:

答案 0 :(得分:0)

您只使用- (void)addChildViewController:(UIViewController *)childController构建自己的包含视图控制器(例如您自己的tabBarController),而不是将子视图添加到滚动视图。有关视图控制器控制的更多信息,请阅读https://developer.apple.com/library/ios/featuredarticles/ViewControllerPGforiPhoneOS/CreatingCustomContainerViewControllers/CreatingCustomContainerViewControllers.html,有关简短摘要,请阅读When to use addChildViewController vs pushViewController

如果您想要向滚动视图添加视图,只需使用- (void)addSubview:(UIView *)view(例如[self.scrollView addSubview:viewOfViewControllerWithIdentifierView1])即可。还要确保设置scrollviews contentSize和子视图框架。但是,如果您希望滚动视图在不同的视图控制器之间进行分页,我建议您查看UIPageViewController:https://developer.apple.com/library/ios/documentation/uikit/reference/UIPageViewControllerClassReferenceClassRef/UIPageViewControllerClassReference.html

答案 1 :(得分:0)

您可以通过计算滚动视图的contentoffset来检查这一点。为此,您必须添加Scrollview的Delegate Methode。

-(void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView{

    page_control.currentPage=scrollView.contentOffset.x/320;
}

在上面的代码中我有多个宽度为320px的ChildView控制器意味着完整的iPhone屏幕宽度。 page_control 是我选择当前页面的页面控制器。

让我问如果你有任何困惑。