【问题标题】:UIButton not visible in UIScrollView with UIPageControl - Swift 3使用 UIPageControl 在 UIScrollView 中不可见 UIButton - Swift 3
【发布时间】:2017-05-06 07:49:58
【问题描述】:

我正在动态创建一个 scrollView 并有一个与之关联的页面控件。我有一个按钮数组,这些按钮被动态添加到滚动视图中。虽然在第一页中添加的按钮是可见的,但有些按钮不可见,但它们正在添加到滚动视图中。

UIScrollView frame = CGRect(x: 0, y: 0, width: 340, height: 150) scrollView.contentSize = CGSize(width: scrollView.frame.size.width * CGFloat(page), height: scrollView.frame.size.height)

就我而言,我有 2 页,因此内容宽度为 680。 在滚动视图时,滚动视图的内容偏移量为 340,虽然不可见的按钮在 contentSize 内,但按钮仍然不可见,

以下是不可见的按钮框架,

<UIButton: 0x7ffdf0f26bb0; frame = (355 10; 62 32); opaque = NO; layer = <CALayer: 0x610000030840>>, 
<UIButton: 0x7ffdf0f27110; frame = (427 10; 98 32); opaque = NO; layer = <CALayer: 0x610000030960>>,
<UIButton: 0x7ffdf0f27670; frame = (535 10; 112 32); opaque = NO; layer = <CALayer: 0x610000030a80>>

就页面控件而言,即使我删除了页面控件,我也会在滚动视图中看到相同的行为。 我不确定是否必须检查滚动视图上的任何特定内容。

@IBAction func changePage(sender: UIPageControl) -> () {
        let x = CGFloat(pageControl.currentPage + 1) * scrollView.frame.size.width
        scrollView.setContentOffset(CGPoint(x: x,y :scrollView.frame.size.height), animated: true)
    }

func scrollViewDidEndDecelerating(_ scrollView: UIScrollView) {
        let pageNumber = round(scrollView.contentOffset.x / scrollView.frame.size.width)
        pageControl.currentPage = Int(pageNumber)
    }

【问题讨论】:

    标签: uiscrollview swift3 uipagecontrol


    【解决方案1】:

    问题不在于页面控件或滚动视图,我使用的是滚动视图圆角的扩展,导致此问题,

    扩展 UIView {

    func roundCorners(corners:UIRectCorner, radius: CGFloat) {
        let path = UIBezierPath(roundedRect: self.bounds, byRoundingCorners: corners, cornerRadii: CGSize(width: radius, height: radius))
        let mask = CAShapeLayer()
        mask.path = path.cgPath
        self.layer.mask = mask
    }}
    

    我仍然不明白为什么向图层添加蒙版会弄乱滚动视图。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-11-12
      • 2012-11-01
      • 2011-08-26
      • 2021-01-09
      • 1970-01-01
      • 1970-01-01
      • 2017-06-12
      • 2014-10-10
      相关资源
      最近更新 更多