UIScrollerView 添加一个View 设置好约束 view不显示

//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 设置好约束 view不显示)