iOS – 使用UIPageContol加载和切换页面

我想使用UIPageControl在不同的视图控制器之间导航。 我有2个视图控制器和另一个主视图控制器包含UIPageControl 。 要导航的两个视图控制器已经作为子视图添加到主视图控制器。 当我正在启动应用程序时,我看到一个空白屏幕。 我用pageControl.currentPage = 0但我无法理解为什么我无法看到的意见。

请注意,我不想在我的应用程序中使用UIScrollView

编辑 – 我已经按照这个教程http://www.wannabegeek.com/?p=168

但它使用滚动视图。 我不想使用滚动视图,因为它正在使用UIWebView和我在不同视图控制器中使用的CorePlot创build一些问题。

我在不使用滚动视图的情况下寻求如何修改本教程的指导。 谢谢!

将其他视图控制器添加为子视图只是关联视图控制器 – 它不会添加它们作为子视图pipe理的视图。 所以,当你添加他们作为孩子,你也应该添加子视图,并设置初始帧。 您可能还想要添加轻扫手势来触发视图animation来为视图的框架设置animation(尽pipe还有其他几个选项,如使用滚动视图)。

作为移动视图的animation的一部分,您手动更新页面控件(这不会自动发生)。


loadScrollViewWithPage方法是关键。 用参数01调用它来加载两个页面,并将视图添加为子视图。 只要将self.scrollView更改为self.scrollView即可。

我会添加一个(真正的两个,但得到1个工作第一)滑动手势到页面控制。 然后,当它被刷,你可以移动其他意见。

滑动手势callback:

 - (void)swipeRightToLeftGesture:(UIGestureRecognizer *)gestureRecognizer { [UIView animateWithDuration:1 animations:^{ for (UIViewController *vc in self.childViewControllers) { CGRect frame = vc.view.frame; frame.origin.x -= self.view.frame.size.width; vc.view.frame = frame; } }]; } 

对子视图控制器进行这种迭代,并将其视图的框架移动到左侧。 从左向右滑动处理程序将是相同的,除了它将+=宽度移动到右边。

[代码编辑 – 语法]

UIPageControl不处理您的刷卡或页面切换。 为了使用它,你需要有一个滚动视图(或其他types的控制)来处理滑动和实际的页面切换,然后实现UIScrollViewDelegate协议(或者你使用的控件所需的任何协议)知道页面控件何时应该更新当前页面位置(当前选中的点)。 UIPageControl本身并不是很多。

除了显示一些点之外,UIPageControl不会做任何事情。 如果你想在视图控制器之间切换的方式,听起来像你想要的UIPageViewController,这是一个完全不同的动物。 UIPageViewController的一个很好的function是它可以显示一个UIPageControl作为指示/切换视图控制器的一种方式,这可能只是你以前的事情。