我正在尝试创建滚动视图。视图本身是正确的 显示,但即使我向其中添加了视图,它也不会滚动 设置内容大小。
注意:我不是在使用情节提要,而只是在使用约束(自动版式)。
代码:
let scrollView: UIScrollView = {
let sv = UIScrollView()
sv.isScrollEnabled = true
sv.backgroundColor = .brown
return sv
}()
override func viewDidLoad() {
super.viewDidLoad()
setupViews()
}
func setupViews() {
self.view.addSubview(scrollView)
scrollView.anchor(top: self.view.topAnchor, left: self.view.leftAnchor, bottom: self.view.bottomAnchor, right: self.view.rightAnchor, paddingTop: 0, paddingLeft: 0, paddingBottom: 0, paddingRight: 0, width: 0, height: 0)
scrollView.contentSize = CGSize(width: self.view.frame.width, height: 2000)
print(scrollView.contentSize)
let view = UIView()
view.backgroundColor = .blue
scrollView.addSubview(view)
view.anchor(top: scrollView.topAnchor, left: scrollView.leftAnchor, bottom: scrollView.bottomAnchor, right: scrollView.rightAnchor, paddingTop: 0, paddingLeft: 0, paddingBottom: 0, paddingRight: 0, width: 0, height: 0)
}
.anchor()是我所做的自定义扩展,目的是使约束视图更容易。
任何帮助将不胜感激。
答案 0 :(得分:1)
最好不要将自动布局与框架布局混合在一起
1-评论
scrollView.contentSize = CGSize(width: self.view.frame.width, height: 2000)
2-在scrollview内的视图到vc的视图和高度限制为2000之间设置相等的宽度约束
不与vc的视图更改混淆
let view = UIView()
到
let contentView = UIView()
然后添加这两个约束
contentView.widthAnchor.constraint(equalTo:self.view.widthAnchor).isActive = true
contentView.heightAnchor.constraint(equalToConstant:2000).isActive = true