【发布时间】:2021-01-13 07:44:40
【问题描述】:
我正在编写我的第一个关于 MVC 架构的项目。我是初学者,可能会错过一个简单的。但我就是不知道如何在 View 中实现约束并将其传递给 Controller。
查看:
import UIKit
class ViewExample: UIView {
var textView: UITextView = {
let textView = UITextView()
textView.translatesAutoresizingMaskIntoConstraints = false
textView.text = "Hello, world!"
return textView
}()
func setupViews() {
addSubview(textView)
NSLayoutConstraint.activate([
textView.topAnchor.constraint(equalTo: safeAreaLayoutGuide.topAnchor, constant: 10),
textView.leadingAnchor.constraint(equalTo: leadingAnchor, constant: 10),
textView.trailingAnchor.constraint(equalTo: trailingAnchor, constant: -10),
textView.heightAnchor.constraint(equalTo: textView.widthAnchor, multiplier: 2)
])
}
override init(frame: CGRect){
super.init(frame: frame)
setupViews()
}
required init?(coder: NSCoder) {
super.init(coder: coder)
setupViews()
}
}
控制器:
import UIKit
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
let ve = ViewExample()
ve.setupViews()
view.addSubview(ve)
}
}
我需要解决什么问题才能使其正常工作?
【问题讨论】:
-
嘿!我对你在这里想要做什么感到困惑。我可以看到你已经为你的
ViewExample设置了约束,因为它被初始化了,你正在将它添加到你的 VC 中。将约束从视图“传递”到 VC 到底是什么意思?如果您可以在此处包含您想要实现的目标会更好 -
另外,与您的问题无关,但您不需要显式调用
setupViews(),因为您在初始化ViewExample()时会调用您的init(frame: CGRect)
标签: swift model-view-controller view constants