我想使用UIPageControl在不同的视图控制器之间导航。我有两个视图控制器,另一个主视图控制器包含UIPageControl。要导航的2个视图控制器已作为子视图添加到主视图控制器中。当我当前启动应用程序时,我会看到一个空白屏幕。我使用了pageControl.currentPage = 0,但是我无法理解为什么我看不到视图。
注意,我不想在我的应用程序中使用UIScrollView。
编辑-我遵循了本教程http://www.wannabegeek.com/?p=168
但它使用滚动视图。我不想使用滚动视图,因为它会在不同的视图控制器中使用的UIWebView和CorePlot创建一些问题。
我寻求指导如何修改本教程而不使用滚动视图。谢谢!
发布于 2014-01-16 20:37:33
将其他视图控制器作为子视图添加,只会关联视图控制器--它不会将它们管理的视图添加为子视图。因此,当您将它们作为子视图添加时,您还应该添加子视图并设置初始框架。您还可能希望添加滑动手势来触发视图动画,以动画视图的框架(尽管还有其他几个选项,比如使用滚动视图)。
作为动画的一部分,要移动视图,您需要手动更新页面控件(这不会自动发生)。
loadScrollViewWithPage方法是关键。使用参数0调用它,然后调用1加载两个页面,并将视图添加为子视图。只需将self.scrollView更改为self.view即可。
我会添加一个(两个真的,但得到1个工作的第一个)滑动手势到页面控件。然后,当它被滑动时,您可以移动其他视图。
回击手势:
- (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;
}
}];
}该迭代对子视图控制器和动画其视图的框架,以将它们向左移动。从左到右的滑动处理程序将是相同的,但它将+=的宽度,以移动到右边。
代码编辑-语法
发布于 2014-01-16 20:13:05
UIPageControl不为您处理滑动或页面切换。为了使用它,您需要一个滚动视图(或其他类型的控件)来处理滑动和实际的页面切换,然后实现UIScrollViewDelegate协议(或您正在使用的控件所需的任何协议),以知道页面控件何时应该更新其当前页面位置(当前选定的点)。UIPageControl本身并没有做很多事情。
发布于 2014-01-16 20:01:03
除了显示一些点外,UIPageControl什么也不做。如果你想要一种在视图控制器之间切换的方式,它听起来像是你想要的UIPageViewController,它是一种完全不同的动物。UIPageViewController的一个好特性是它可以显示UIPageControl作为指示/切换视图控制器的一种方式,这可能正是您所追求的。
https://stackoverflow.com/questions/21171613
复制相似问题