无法同时满足约束 - 制图
Posted
技术标签:
【中文标题】无法同时满足约束 - 制图【英文标题】:Unable to simultaneously satisfy constraints - Cartography 【发布时间】:2015-09-23 04:11:43 【问题描述】:我在使用 Swift 2.0 编写的应用程序中使用 AutoLayout 和代码,并使用 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)]>"
)
有人知道我能做什么吗?这是一个不同的问题,因为我使用了一个库。
【问题讨论】:
Auto-layout: What creates constraints named UIView-Encapsulated-Layout-Width & Height?的可能重复 没有。我正在使用 Swift 和一个库来做到这一点。 我不认为图书馆是这里的问题。 问题出在这两个关系 buttonOne.left == view.right - 12 buttonOne.right == view.left + 12. buttonOnce 怎么才能让 view.right 和 buttonOne.right 和 view.留下相关的? 【参考方案1】:添加约束代码应如下所示
constrain(buttonOne, view) buttonOne, view in
buttonOne.left == view.left + 12
buttonOne.right == view.right - 12
buttonOne.bottom == view.bottom - 12
如果您需要底部的按钮,距离左右和底部有 12 pt 的边距
【讨论】:
以上是关于无法同时满足约束 - 制图的主要内容,如果未能解决你的问题,请参考以下文章