如何在全屏ChildViewController上显示UIPageControl?

时间:2014-03-12 16:22:43

标签: uiscrollview uipageviewcontroller uipagecontrol

在许多应用中'介绍屏幕,你有一个位于全屏图像顶部的UIPageControl(底部没有黑色边框)。

我无法弄清楚这是怎么做到的。我是否正确将UIPageControl添加为ChildViewController的子视图?一旦用户滑动到下一个屏幕,页面控件如何不移动?

由于

1 个答案:

答案 0 :(得分:0)

一种方法是使用UIPageViewController作为主屏幕。实施

-(NSInteger)presentationCountForPageViewController:(UIPageViewController *)pvc {
    //
}

-(NSInteger)presentationIndexForPageViewController:(UIPageViewController *)pvc {
    // 
}

在页面视图控制器数据源中。 (请参阅文档以了解每种方法需要返回的内容。)页面控件将作为页面视图控制器的一部分神奇地出现,只是因为您实现了这些方法。

不幸的是很难看到UIPageControl,因为默认是白色的白色!我所做的是用外观代理为它着色。例如:

UIPageControl* proxy = [UIPageControl appearanceWhenContainedIn:[UIPageViewController class], nil];
[proxy setPageIndicatorTintColor:[[UIColor redColor] colorWithAlphaComponent:0.6]];
[proxy setCurrentPageIndicatorTintColor:[UIColor redColor]];
[proxy setBackgroundColor:[UIColor yellowColor]];

如果您不想使用页面视图控制器,可以直接添加UIPageControl。正如你所说,它不能是视图控制器的孩子,因为当我们切换到另一个孩子时它会消失。它必须是视图控制器的孩子,坐在一切的前面。