更改页面控制的背景颜色

时间:2015-10-20 11:49:06

标签: ios tvos apple-tv

有没有办法在 tvOS 中更改页面控制的背景颜色?

注意:我想将背景颜色设置为清晰颜色

我已尝试使用以下代码,但它无法在 tvOS 中使用。

var pageControl : UIPageControl!
pageControl = UIPageControl(frame: CGRectMake(0, self.view.frame.height - 200, self.view.frame.width, 50))
pageControl.pageIndicatorTintColor = UIColor(red: 255/255, green: 255/255, blue: 255/255, alpha: 0.70)
pageControl.currentPageIndicatorTintColor = UIColor.whiteColor()
pageControl.backgroundColor = UIColor.clearColor()
pageControl.opaque = false
pageControl.numberOfPages = 10
pageControl.currentPage = 0

提前致谢。

3 个答案:

答案 0 :(得分:3)

此透明背景是UIVageControl中UIVisualEffectView类型的子视图。您可以像这样删除它:

for subview in pageControl.subviews {
  if subview.isKindOfClass(UIVisualEffectView) {
    subview.removeFromSuperview()
  }
}

答案 1 :(得分:0)

@ alexander-johmann上面有一个解决方案(虽然我想找另一种方式)。

理想情况下,能够设置实际背景颜色会更好。这个解决方案并没有真正做到这一点;它删除了UIPageControl的元素以获得“效果”#39;提供明确的背景而不实际这样做。

以下是相同代码的Objective-c版本:

for (UIView *subview in pageControl.subviews) {
    if ([subview isKindOfClass:[UIVisualEffectView class]] == YES) {
        [subview removeFromSuperview];
    }
}

答案 2 :(得分:0)

当必须显示太多页面时,亚历山大提到的修复对我不起作用。我宁愿将效果设置为nil:

for subview in pageControl.subviews {
    guard let effectView = subview as? UIVisualEffectView else { continue }
    effectView.effect = nil
}