Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/98.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
iOS-使用UIPageControl在页面之间加载和切换_Ios_Uiviewcontroller_Uiscrollview_Uistoryboard_Uipagecontrol - Fatal编程技术网

iOS-使用UIPageControl在页面之间加载和切换

iOS-使用UIPageControl在页面之间加载和切换,ios,uiviewcontroller,uiscrollview,uistoryboard,uipagecontrol,Ios,Uiviewcontroller,Uiscrollview,Uistoryboard,Uipagecontrol,我想使用UIPageControl在不同的视图控制器之间导航。我有两个视图控制器,另一个主视图控制器包含UIPageControl。要在其中导航的两个视图控制器已作为子视图添加到主视图控制器。当前启动应用程序时,我看到一个空白屏幕。我使用了pageControl.currentPage=0,但我无法理解为什么无法查看视图 请注意,我不想在我的应用程序中使用UIScrollView 编辑-我遵循了本教程 但它使用滚动视图。我不想使用scroll view,因为在不同的视图控制器中使用的UIWebV

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

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

编辑-我遵循了本教程

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


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

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

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

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

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


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;
                     }
                 }];
}
这将在子视图控制器上进行迭代,并设置其视图帧的动画以将其向左移动。从左向右滑动的处理程序将是相同的,只是它将
+=
向右移动的宽度


[代码编辑-语法]

我的应用程序目前有2个视图,我希望将页面指示器合并到其中。其中一个视图具有UIWebView,另一个视图具有可放大/缩小的Coreplot。那么您建议使用UIPageViewController吗?我尝试过使用
UIScrollView
,但其中一个视图控制器中有一个UIWebView,并且在UIWebView中滚动不起作用。您不需要滚动视图,
ui视图
更改子视图帧的动画可以。您能否就如何添加子视图和设置初始帧提供一些示例代码?您能否展示一些您如何创建的代码?很明显,您正在努力将建议与您所拥有的联系起来,因此请提供您所拥有的详细信息,我们可以用您理解的名称进行工作。这是您的第一个应用程序吗?我们可以通过聊天室或其他方式继续讨论吗?我有一些基本问题。请你回答好吗?但是我该如何更改指示页面的圆点呢?我使用了
pageControl.currentPage
,但它不起作用。您尝试将其设置为什么?您记录了值吗?你有错误吗?