如何以编程方式更改布局边距

Vik*_*era 5 ios autolayout swift

我在 中设置非常简单viewDidLoad,只需添加一个视图并通过“锚点”样式将其固定到超级视图的边距:

let myView = UIView(frame: .zero)
myView.translatesAutoresizingMaskIntoConstraints = false
view.addSubview(myView)
myView.backgroundColor = UIColor.red
myView.leadingAnchor.constraint(equalTo: view.layoutMarginsGuide.leadingAnchor).isActive = true
myView.trailingAnchor.constraint(equalTo: view.layoutMarginsGuide.trailingAnchor).isActive = true
myView.bottomAnchor.constraint(equalTo: view.layoutMarginsGuide.bottomAnchor).isActive = true
myView.topAnchor.constraint(equalTo: view.layoutMarginsGuide.topAnchor).isActive = true
view.layoutMargins = .zero
Run Code Online (Sandbox Code Playgroud)

问题是在模拟器中运行它时仍然有余量。为什么 layoutMargins 归零被忽略?

在此处输入图片说明

Vik*_*era 0

这似乎是固定/更改的iOS 11。较低的版本就不那么幸运了。

我在这个问题中详细阐述了