UIPageControl具有tvOS的背景

时间:2017-03-05 11:42:46

标签: swift tvos uipagecontrol

在我的一个游戏中,我使用UICollectionView作为关卡选择菜单。我最近以编程方式添加了一个UIPageControl。

     /// Page control
func setupPageControl() {
    pageControl.hidesForSinglePage = true
    pageControl.numberOfPages = DataSource.worlds
    pageControl.translatesAutoresizingMaskIntoConstraints = false
    pageControl.currentPageIndicatorTintColor = DataSource.pageControlColors[pageControl.currentPage]
    pageControl.pageIndicatorTintColor = UIColor.white.withAlphaComponent(0.8)
    pageControl.addTarget(self, action: #selector(didPressPageControl), for: .valueChanged)
    view.addSubview(pageControl)

    let leading = NSLayoutConstraint(item: pageControl, attribute: .leading, relatedBy: .equal, toItem: view, attribute: .leading, multiplier: 1, constant: 0)
    let trailing = NSLayoutConstraint(item: pageControl, attribute: .trailing, relatedBy: .equal, toItem: view, attribute: .trailing, multiplier: 1, constant: 0)

    let bottomConstant = Device.isPad ? view.frame.width / 9 : view.frame.width / 17
    let bottom = NSLayoutConstraint(item: pageControl, attribute: .bottom, relatedBy: .equal, toItem: view, attribute: .bottom, multiplier: 1, constant: -bottomConstant)
    view.addConstraints([leading, trailing, bottom])
}

在iOS上一切都很好但在tvOS上,PageController有一个半透明的背景,可以在整个屏幕上延伸。

enter image description here

如何关闭此功能?我尝试设置pageControl背景颜色,但这似乎不起作用。

1 个答案:

答案 0 :(得分:0)

像往常一样,当我发布问题时,我会在一分钟后找到答案。

您可以通过调用此

删除tvOS上的背景
#if os(tvOS)
   for subview in pageControl.subviews {
       let effectView = subview as? UIVisualEffectView
       effectView?.removeFromSuperview()
   }
#endif

Change background color for page control