你忘了给你的头一个框架。试试这个:
class ViewController: UIViewController { private var head: UIView! override func viewDidLoad() { super.viewDidLoad() setup() } private func setup() { head = UIView(frame: .zero) head.translatesAutoresizingMaskIntoConstraints = false head.backgroundColor = .red self.view.addSubview(head) head.leftAnchor.constraint(equalTo: self.view.leftAnchor, constant: 16).isActive = true head.rightAnchor.constraint(equalTo: self.view.rightAnchor, constant: -16).isActive = true head.topAnchor.constraint(equalTo: self.view.topAnchor, constant: 16).isActive = true head.bottomAnchor.constraint(equalTo: self.view.bottomAnchor, constant: -16).isActive = true } }
当我在您的代码中跟踪问题时,您忘了添加 head.translatesAutoresizingMaskIntoConstraints = false 为了 head 查看并删除 self.view.translatesAutoresizingMaskIntoConstraints = false
head.translatesAutoresizingMaskIntoConstraints = false
head
self.view.translatesAutoresizingMaskIntoConstraints = false
所以只有改变是,添加这一行。
let head = UIView.init() head.backgroundColor = UIColor.cyan head.translatesAutoresizingMaskIntoConstraints = false self.view.addSubview(head) //This new line added head.translatesAutoresizingMaskIntoConstraints = false head.leadingAnchor.constraint(equalTo: self.view.layoutMarginsGuide.leadingAnchor).isActive = true head.topAnchor.constraint(equalTo: self.view.layoutMarginsGuide.topAnchor).isActive = true head.trailingAnchor.constraint(equalTo: self.view.layoutMarginsGuide.trailingAnchor).isActive = true head.heightAnchor.constraint(equalToConstant: 44).isActive = true
我尝试了与XCode版本10.0(10A255)一起发布的相同代码,它的工作正常,但显示XCode版本10.1(10B61)崩溃。
我已经尝试过这段代码并且在我身边工作得很好。请检查:
var head: UIView? = nil override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view, typically from a nib. head = UIView.init() head?.backgroundColor = UIColor.cyan self.view.addSubview(head!) head?.translatesAutoresizingMaskIntoConstraints = false head?.leadingAnchor.constraint(equalTo: self.view.layoutMarginsGuide.leadingAnchor).isActive = true head?.topAnchor.constraint(equalTo: self.view.layoutMarginsGuide.topAnchor).isActive = true head?.trailingAnchor.constraint(equalTo: self.view.layoutMarginsGuide.trailingAnchor).isActive = true head?.heightAnchor.constraint(equalToConstant: 44).isActive = true }
不要写这行你不需要这个: