在 UIPageViewController 中使用时的 PageControl backgroundColor

Posted

技术标签:

【中文标题】在 UIPageViewController 中使用时的 PageControl backgroundColor【英文标题】:PageControl backgroundColor when used in UIPageViewController 【发布时间】:2014-01-09 19:25:56 【问题描述】:

我正在尝试在 ios7 中使用 UIPageViewController 实现一个简单的教程。我在 UIPageViewControllerDataSource 中实现了所有方法,它给了我一个 UIPageControl。一切正常,除了 pageControl 的背景不透明,因此它阻挡了它后面的其他视图的一部分。

我尝试使用以下代码更改 pageControl 的外观

pageControl.backgroundColor = [UIColor greenColor];  //works, background is green

pageControl.backgroundColor = [UIColor clearColor]; //not working, background is black.

//更新 事实证明,黑色是 PageControl 图层的背景色。而且这个页面控制层不在我自己用于页面的 ViewControllers 之上。它们是并行的。所以无论我如何修改它的颜色,我都无法让我的 ViewControllers 占据全屏。

有没有一种简单的方法可以将 PageControl 移动到我的 ViewController 之上?

【问题讨论】:

【参考方案1】:

它可能是父视图的背景。我有类似的情况,背景颜色实际上是我的父控件的背景,而不是我自己的。这是我使用的一个工具,可以帮助我缩小范围:http://www.sparkinspector.com。这是另一个做同样事情的工具:http://revealapp.com。

还有一件事 - 不确定这是否适用于您的情况,但它可能是可能需要其颜色设置的背景层

CALayer *layer = self.layer;
[layer setBackgroundColor:[UIColor clearColor]];

【讨论】:

【参考方案2】:

如果您将某些内容设置为清晰的颜色,那么背景颜色将取决于背景上的任何内容,页面控件所在的视图(通常是 uipagecontrol)没有背景,这就是您将其视为的原因黑色。

【讨论】:

以上是关于在 UIPageViewController 中使用时的 PageControl backgroundColor的主要内容,如果未能解决你的问题,请参考以下文章

ViewDidLoad 不断在 UIPageViewController 上被调用

UIPageViewController 背景在 Objective C iOS 中从不透明

获取 UIPageViewController 的滚动位置

在故事板中使用 UIPageViewController

如何在 UIPageViewController 和孩子之间正确传递对象

使用 UIPageViewController 在多个视图控制器之间滑动