更改页面控件的背景颜色
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
}
有什么方法可以在 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
}