相关疑难解决方法(0)

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

我在 中设置非常简单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 归零被忽略?

在此处输入图片说明

ios autolayout swift

5
推荐指数
1
解决办法
1万
查看次数

无法更改默认布局

由于ios 8.0视图具有其他功能layoutMargins,因此默认情况下,每侧具有8点的值。

当我尝试更改边距时,viewDidLoad它似乎对子视图没有影响:

override func viewDidLoad(){
    super.viewDidLoad()
    self.view.layoutMargins = UIEdgeInsets(top:100, left:100, bottom:100, right:100)

}
Run Code Online (Sandbox Code Playgroud)

..itd似乎没有任何作用,并且

objective-c ios swift

4
推荐指数
2
解决办法
4354
查看次数

标签 统计

ios ×2

swift ×2

autolayout ×1

objective-c ×1