有没有办法在 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
提前致谢。
答案 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
}