【发布时间】:2017-10-14 17:01:59
【问题描述】:
我正在学习自动布局锚点并尝试以编程方式实现这个简单的事情
这里是我的代码
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(true)
let view1 = UIView()
view1.backgroundColor = .brown
blueView.addSubview(view1)
view1.translatesAutoresizingMaskIntoConstraints = false
view1.topAnchor.constraint(equalTo: blueView.topAnchor, constant:10).isActive = true
view1.bottomAnchor.constraint(equalTo: blueView.bottomAnchor, constant:10).isActive = true
view1.leadingAnchor.constraint(equalTo: blueView.leadingAnchor, constant:10).isActive = true
view1.trailingAnchor.constraint(equalTo: blueView.trailingAnchor, constant:10).isActive = true
view1.heightAnchor.constraint(equalToConstant: 80).isActive = true
view1.widthAnchor.constraint(equalToConstant: 80).isActive = true
}
这就是我得到的
出了什么问题?
【问题讨论】:
-
请用图片代替链接。
-
您期待什么结果?在没有设置测试项目的情况下,事情看起来对我来说是正确的 - 您将前导/尾随和顶部/底部锚点设置为与蓝色锚点向下和向右偏移 10 个点。 存在冲突:蓝色的宽度/高度为 100,您似乎正在尝试将棕色的宽度/高度设置为 80。但是,这可能意味着布局引擎正在破坏这两者,因为它们与底部/尾随约束。 (我为什么这么说?因为结果。)顺便说一句,您检查控制台是否有任何冲突?
-
还有一项 - 我刚刚注意到您正在将棕色视图设为蓝色视图的子视图。如果您希望剪辑棕色视图以始终保持在蓝色视图的范围内,请设置该标志。否则,您可以发布结果。
标签: swift uiview autolayout