更改页面控件的背景颜色

Change background color for page control

有什么方法可以在 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

提前致谢。

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

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

上面的@alexander-johmann 有一个解决方案(尽管我想找到另一种方法)。

最好能够设置实际的背景颜色。这个解决方案并没有真正做到这一点;它删除了 UIPageControl 的元素以获得 'effect' 提供清晰的背景而不实际这样做。

这是相同代码的 objective-c 版本:

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

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

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