如何在全屏 ChildViewController 上显示 UIPageControl?
Posted
技术标签:
【中文标题】如何在全屏 ChildViewController 上显示 UIPageControl?【英文标题】:How to show a UIPageControl on top of a fullscreen ChildViewController? 【发布时间】:2014-03-12 16:22:42 【问题描述】:在许多应用的介绍屏幕中,您都有一个位于全屏图像顶部的 UIPageControl(底部没有黑色边框)。
我不知道这是怎么做到的。我是否正确将 UIPageControl 添加为 ChildViewController 的子视图?一旦用户滑动到下一个屏幕,页面控件如何不移动?
谢谢
【问题讨论】:
【参考方案1】:一种方法是使用 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。正如你所说的那样,它不能是 child 视图控制器的孩子,因为当我们切换到不同的孩子时它会消失。它必须是 parent 视图控制器的子节点,位于所有内容的前面。
【讨论】:
以上是关于如何在全屏 ChildViewController 上显示 UIPageControl?的主要内容,如果未能解决你的问题,请参考以下文章
全屏 UICollectionView:如何在滚动时在全屏单元格(或部分)之间添加间距
如何将 QVideoWidget 设置为全屏并在全屏小部件中有音量滑块?