如何在全屏 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:如何在滚动时在全屏单元格(或部分)之间添加间距

C ++如何使用处理程序检测窗口状态是不是在全屏?

如何将 QVideoWidget 设置为全屏并在全屏小部件中有音量滑块?

如何使用 reactJS 和 css 在全屏背景中显示图像?

如何全屏模式自定义视频播放器并在全屏打开时向下滚动

在全屏模式演示样式中使用 segue 时如何仍然显示导航栏?