可以初始化约束的推荐 UIViewController 覆盖方法是什么?
Which is the recommended UIViewController override method where constraints can be initialised?
我正在以编程方式创建 UI。我正在初始化 UI 并将其添加为 loadView()
方法中的子视图。我将方法分类为:
initUI()
initConstraints()
initStyle()
我正在寻找正确的覆盖方法,其中每一个都可以放在 UIViewController
。
override func loadView() {
super.loadView()
initUI()
}
func initUI() {
view = UI.view(frame: UIScreen.main.bounds)
view.addSubview(scrollView)
}
func initConstraints() { // Where to place this?
NSLayoutConstraint.activate([]) // ..
}
放在哪里initConstraints()
?
在你的约束设置函数中,记得调用,
scrollView.translatesAutoResizingMaskIntoConstraints = false
。
在你做了 view.addSubview(scrollView)
之后,你可以调用你的约束函数。
但是是的,如果你想让它们以后改变,你应该在 viewDidLayoutSubviews()
中设置它。
重要的是,在创建约束之前,约束控制的视图已经添加到视图层次结构中。
如果您在 initConstraints()
中创建和激活约束,您应该在将视图添加到视图层次结构后立即调用它,这在 loadView()
或 viewDidLoad()
中完成。
您可以在 initUI()
结束时调用 initConstraints()
,也可以在调用 initUI()
之后调用 initConstraints()
。
我正在以编程方式创建 UI。我正在初始化 UI 并将其添加为 loadView()
方法中的子视图。我将方法分类为:
initUI()
initConstraints()
initStyle()
我正在寻找正确的覆盖方法,其中每一个都可以放在 UIViewController
。
override func loadView() {
super.loadView()
initUI()
}
func initUI() {
view = UI.view(frame: UIScreen.main.bounds)
view.addSubview(scrollView)
}
func initConstraints() { // Where to place this?
NSLayoutConstraint.activate([]) // ..
}
放在哪里initConstraints()
?
在你的约束设置函数中,记得调用,
scrollView.translatesAutoResizingMaskIntoConstraints = false
。
在你做了 view.addSubview(scrollView)
之后,你可以调用你的约束函数。
但是是的,如果你想让它们以后改变,你应该在 viewDidLayoutSubviews()
中设置它。
重要的是,在创建约束之前,约束控制的视图已经添加到视图层次结构中。
如果您在 initConstraints()
中创建和激活约束,您应该在将视图添加到视图层次结构后立即调用它,这在 loadView()
或 viewDidLoad()
中完成。
您可以在 initUI()
结束时调用 initConstraints()
,也可以在调用 initUI()
之后调用 initConstraints()
。