【发布时间】:2021-06-09 18:27:54
【问题描述】:
例子:
class ViewController: UIViewController {
let labelOne: UIView = {
let label = UIView()
label.backgroundColor = .red
label.translatesAutoresizingMaskIntoConstraints = false
return label
}()
let scrollView: UIScrollView = {
let v = UIScrollView()
v.translatesAutoresizingMaskIntoConstraints = false
v.backgroundColor = .cyan
v.contentSize = CGSize(width: 2000, height: 2000)
return v
}()
override func viewDidLoad() {
super.viewDidLoad()
self.view.addSubview(scrollView)
scrollView.leftAnchor.constraint(equalTo: view.leftAnchor, constant: 8.0).isActive = true
scrollView.topAnchor.constraint(equalTo: view.topAnchor, constant: 8.0).isActive = true
scrollView.rightAnchor.constraint(equalTo: view.rightAnchor, constant: -8.0).isActive = true
scrollView.bottomAnchor.constraint(equalTo: view.bottomAnchor, constant: -8.0).isActive = true
scrollView.addSubview(labelOne)
labelOne.leadingAnchor.constraint(equalTo: scrollView.leadingAnchor, constant: 16.0).isActive = true
labelOne.topAnchor.constraint(equalTo: scrollView.topAnchor, constant: 16.0).isActive = true
labelOne.trailingAnchor.constraint(equalTo: scrollView.trailingAnchor, constant: -16).isActive = true
labelOne.heightAnchor.constraint(equalToConstant: 100).isActive = true
}
}
附注 我知道如果我将内容视图放在 UIScrollView 中并在该内容中构建视图层次结构会更好,但我真的想知道为什么会发生这种情况
【问题讨论】:
-
首先,不要设置
.contentSize——使用自动布局。二、将子视图约束到scrollView的.contentLayoutGuide
标签: ios swift uiscrollview autolayout