美文网首页
iOS开发中使用Masonry约束ScrollView的问题

iOS开发中使用Masonry约束ScrollView的问题

作者: 梁森的简书 | 来源:发表于2021-02-20 14:20 被阅读0次

把UIScrollView当成一般的UIView是无法通过约束子视图将其撑起来的,我们需要为其添加一个子视图,然后在该子视图上添加我们需要显示的视图,并进行约束,这样才能把UIScrollView撑起来。(这里为UIScrollView添加的子视图类似UITableViewCell的contentView)

代码:
自定义的UIScrollView

class LSScrollView: UIScrollView {

    lazy var contentView: UIView = {
        let contentView = UIView()
        return contentView
    }()
    override init(frame: CGRect) {
        super.init(frame: frame)
        addSubview(contentView)
        contentView.snp.makeConstraints { (make) in
            make.left.right.top.bottom.equalToSuperview()
            make.width.equalToSuperview() // 垂直滚动需要固定宽度
        }
    }
    required init?(coder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }
}

使用LSScrollView

view.addSubview(scrollView)
        scrollView.snp.makeConstraints { (make) in
            make.left.right.top.equalToSuperview()
            make.height.equalTo(400)
        }
        
        let lbl = UILabel()
        lbl.numberOfLines = 0
        lbl.text = "11111fhaskdh六大减肥了吉拉的距离近距离看见啊; 阿里的肌肤阿里快递放假啦发大水开了房间发卡斯蒂略房价多少风景看了的撒风啊开始就否定了卡加水淀粉啊来得及发来的风11111fhaskdh六大减肥了吉拉的距离近距离看见啊; 阿里的肌肤阿里快递放假啦发大水开了房间发卡斯蒂略房价多少风景看了的撒风啊开始就否定了卡加水淀粉啊来得及发来的风11111fhaskdh六大减肥了吉拉的距离近距离看见啊; 阿里的肌肤阿里快递放假啦发大水开了房间发卡斯蒂略房价多少风景看了的撒风啊开始就否定了卡加水淀粉啊来得及发来的风11111fhaskdh六大减肥了吉拉的距离近距离看见啊; 阿里的肌肤阿里快递放假啦发大水开了房间发卡斯蒂略房价多少风景看了的撒风啊开始就否定了卡加水淀粉啊来得及发来的风11111fhaskdh六大减肥了吉拉的距离近距离看见啊; 阿里的肌肤阿里快递放假啦发大水开了房间发卡斯蒂略房价多少风景看了的撒风啊开始就否定了卡加水淀粉啊来得及发来的风11111fhaskdh六大减肥了吉拉的距离近距离看见啊; 阿里的肌肤阿里快递放假啦发大水开了房间发卡斯蒂略房价多少风景看了的撒风啊开始就否定了卡加水淀粉啊来得及发来的风11111fhaskdh六大减肥了吉拉的距离近距离看见啊; 阿里的肌肤阿里快递放假啦发大水开了房间发卡斯蒂略房价多少风景看了的撒风啊开始就否定了卡加水淀粉啊来得及发来的风11111fhaskdh六大减肥了吉拉的距离近距离看见啊; 阿里的肌肤阿里快递放假啦发大水开了房间发卡斯蒂略房价多少风景看了的撒风啊开始就否定了卡加水淀粉啊来得及发来的风11111fhaskdh六大减肥了吉拉的距离近距离看见啊; 阿里的肌肤阿里快递放假啦发大水开了房间发卡斯蒂略房价多少风景看了的撒风啊开始就否定了卡加水淀粉啊来得及发来的风11111fhaskdh六大减肥了吉拉的距离近距离看见啊; 阿里的肌肤阿里快递放假啦发大水开了房间发卡斯蒂略房价多少风景看了的撒风啊开始就否定了卡加水淀粉啊来得及发来的风11111fhaskdh六大减肥了吉拉的距离近距离看见啊; 阿里的肌肤阿里快递放假啦发大水开了房间发卡斯蒂略房价多少风景看了的撒风啊开始就否定了卡加水淀粉啊来得及发来的风11111fhaskdh六大减肥了吉拉的距离近距离看见啊; 阿里的肌肤阿里快递放假啦发大水开了房间发卡斯蒂略房价多少风景看了的撒风啊开始就否定了卡加水淀粉啊来得及发来的风11111fhaskdh六大减肥了吉拉的距离近距离看见啊; 阿里的肌肤阿里快递放假啦发大水开了房间发卡斯蒂略房价多少风景看了的撒风啊开始就否定了卡加水淀粉啊来得及发来的风11111fhaskdh六大减肥了吉拉的距离近距离看见啊; 阿里的肌肤阿里快递放假啦发大水开了房间发卡斯蒂略房价多少风景看了的撒风啊开始就否定了卡加水淀粉啊来得及发来的风11111fhaskdh六大减肥了吉拉的距离近距离看见啊; 阿里的肌肤阿里快递放假啦发大水开了房间发卡斯蒂略房价多少风景看了的撒风啊开始就否定了卡加水淀粉啊来得及发来的风😄"
        lbl.backgroundColor = .white
        scrollView.contentView.addSubview(lbl)
        lbl.snp.makeConstraints { (make) in
            make.top.equalToSuperview().offset(30)
            make.left.right.equalToSuperview()
            make.bottom.equalToSuperview().offset(-30)
        }
    }
    
    lazy var scrollView: LSScrollView = {
        let scrollView = LSScrollView(frame: .zero)
        scrollView.backgroundColor = .red
        scrollView.contentView.backgroundColor = .yellow
        return scrollView
    }()

demo地址:https://github.com/yangguanghei/ConstraintScrollView

相关文章

网友评论

      本文标题:iOS开发中使用Masonry约束ScrollView的问题

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