首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >iOS -使用UIPageContol在页面之间加载和切换

问iOS -使用UIPageContol在页面之间加载和切换
EN

Stack Overflow用户
提问于 2014-01-16 19:58:16
回答 3查看 801关注 0票数 1

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

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

编辑-我遵循了本教程http://www.wannabegeek.com/?p=168

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

我寻求指导如何修改本教程而不使用滚动视图。谢谢!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-01-16 20:37:33

将其他视图控制器作为子视图添加,只会关联视图控制器--它不会将它们管理的视图添加为子视图。因此,当您将它们作为子视图添加时,您还应该添加子视图并设置初始框架。您还可能希望添加滑动手势来触发视图动画,以动画视图的框架(尽管还有其他几个选项,比如使用滚动视图)。

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

loadScrollViewWithPage方法是关键。使用参数0调用它,然后调用1加载两个页面,并将视图添加为子视图。只需将self.scrollView更改为self.view即可。

我会添加一个(两个真的,但得到1个工作的第一个)滑动手势到页面控件。然后,当它被滑动时,您可以移动其他视图。

回击手势:

代码语言:javascript
复制
- (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;
                     }
                 }];
}

该迭代对子视图控制器和动画其视图的框架,以将它们向左移动。从左到右的滑动处理程序将是相同的,但它将+=的宽度,以移动到右边。

代码编辑-语法

票数 1
EN

Stack Overflow用户

发布于 2014-01-16 20:13:05

UIPageControl不为您处理滑动或页面切换。为了使用它,您需要一个滚动视图(或其他类型的控件)来处理滑动和实际的页面切换,然后实现UIScrollViewDelegate协议(或您正在使用的控件所需的任何协议),以知道页面控件何时应该更新其当前页面位置(当前选定的点)。UIPageControl本身并没有做很多事情。

票数 1
EN

Stack Overflow用户

发布于 2014-01-16 20:01:03

除了显示一些点外,UIPageControl什么也不做。如果你想要一种在视图控制器之间切换的方式,它听起来像是你想要的UIPageViewController,它是一种完全不同的动物。UIPageViewController的一个好特性是它可以显示UIPageControl作为指示/切换视图控制器的一种方式,这可能正是您所追求的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21171613

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档