美文网首页
UIScrollerView 添加一个View 设置好约束 vi

UIScrollerView 添加一个View 设置好约束 vi

作者: 子非鱼7868 | 来源:发表于2020-04-16 15:07 被阅读0次
    //view
    lazy var mMainView:UIView = {
            let mainChars = UIView.init()
            mainChars.layer.cornerRadius = 4
            mainChars.layer.borderColor = RGBACOLOR(r: 0, 0, 0, a: 0.09).cgColor
            mainChars.backgroundColor = .red
            mainChars.layer.borderWidth = 0.5
            return mainChars
        }()
    //约束
            self.view.addSubview(mScrollView)
            mScrollView.addSubview(mMainView)
            mMainView.snp.makeConstraints { (make) in
                make.top.equalTo(mYykb.snp.bottom).offset(15)
                make.left.equalTo(mScrollView.snp.left).offset(15)
                make.right.equalTo(mScrollView.snp.right).offset(-15)
                make.height.equalTo(X_Height(height: 170))
            }
    

    问题:

    run起来后,死活看不到view,view不显示

    原因:

    因为UIscrollview的top、leading、trailing、bottom是根据自己的contentSize来确定的,而不是bounds。
    但是contentSize又是根据子视图决定的。因此,上面的代码就会导致添加上去的view宽高都是0,view的四边都是依据contentSize确定,但是contentSize又不确定。这就导致scrollorView上面的子视图不显示,子视图上面的点击事件不响应等问题。

    解决方法:

    我的scroller是和self.view等宽。我就直接用

    make.left.equalTo(self.view.snp.left).offset(15)
    make.right.equalTo(self.view.snp.right).offset(-15)
    

    或者:
    先在scrollorView上添加一个view。设置edges。并且,如果要垂直滚动的话,设置宽度约束,要横向滚动设置高度约束。 然后所有子控件都添加到这个view上去就好了。

    相关文章

      网友评论

          本文标题:UIScrollerView 添加一个View 设置好约束 vi

          本文链接:https://www.haomeiwen.com/subject/ctwrvhtx.html