我正在使用AutoLayout和我在Swift 2.0中编写的应用程序上的代码,并使用Cartograph来帮助约束。 但有些东西会阻止我的应用,否则,我会用它来以编程方式添加视图。
func addButtonOne() -> Void {
buttonOne = UIButton()
buttonOne.backgroundColor = UIColor.greenColor()
self.view.addSubview(buttonOne)
constrain(buttonOne, view) { buttonOne, view in
buttonOne.left == view.right - 12
buttonOne.right == view.left + 12
buttonOne.bottom == view.bottom - 12
}
}
但是在编译之后,它返回:
2015-09-23 00:54:24.489 Fun With Swift[24809:2358352] Unable to simultaneously satisfy constraints.
Probably at least one of the constraints in the following list is one you don't want.
Try this:
(1) look at each constraint and try to figure out which you don't expect;
(2) find the code that added the unwanted constraint or constraints and fix it.
(Note: If you're seeing NSAutoresizingMaskLayoutConstraints that you don't understand,
refer to the documentation for the UIView property translatesAutoresizingMaskIntoConstraints)
(
"<NSLayoutConstraint:0x7afe2160 H:[UIView:0x7afdfe90]-(-12)-[UIButton:0x7afe13b0](LTR)>",
"<NSLayoutConstraint:0x7afe2730 UIButton:0x7afe13b0.right == UIView:0x7afdfe90.left + 12>",
"<NSLayoutConstraint:0x7b0866e0 'UIView-Encapsulated-Layout-Width' H:[UIView:0x7afdfe90(320)]>"
)
任何人都知道我能做什么?这是一个不同的问题,因为我使用的是库。
答案 0 :(得分:0)
添加约束代码应如下所示
constrain(buttonOne, view) { buttonOne, view in
buttonOne.left == view.left + 12
buttonOne.right == view.right - 12
buttonOne.bottom == view.bottom - 12
}
如果你需要一个底部的按钮,从左下角开始有12磅的边距