我在导航控制器中嵌入了一个UIViewController。我正在使用autolayout。在界面构建器中,这就是VC的外观。
但是当在模拟器中运行时,我得到了这个:
出现此错误。
2016-08-10 16:51:17.077我的应用程序[11797:7752671]无法同时进行 满足约束。可能至少有一个限制因素 以下列表是您不想要的。试试这个:(1)看看每一个 约束并试图找出你不期望的东西; (2)找到 添加了不需要的约束或约束并修复它的代码。 (注意:如果您正在看到NSAutoresizingMaskLayoutConstraints,那么 不明白,请参阅UIView属性的文档 translatesAutoresizingMaskIntoConstraints)( “< _UILayoutSupportConstraint:0x7fad72f7d6b0 V:[_ UILayoutGuide:0x7fad72e5d1d0(64)]>”, “< _UILayoutSupportConstraint:0x7fad72ffa6a0 V:| - (0) - [_ UILayoutGuide:0x7fad72e5d1d0](姓名: '|':UIView:0x7fad72fe1b40)>“, “< _UILayoutSupportConstraint:0x7fad72fe2460 V:[_ UILayoutGuide:0x7fad72e64760(0)]>”, “< _UILayoutSupportConstraint:0x7fad72fe1470 _UILayoutGuide:0x7fad72e64760.bottom == UIView:0x7fad72fe1b40.bottom>”, “” “” “” “”)
将尝试通过违反约束来恢复
在UIViewAlertForUnsatisfiableConstraints处创建一个符号断点 在调试器中捕获它。方法中的 在UIView中列出的UIConstraintBasedLayoutDebugging类别 也可能会有帮助。
我已多次重建此视图。我转到 编辑 > 解决自动布局问题 > “所有视图”重置为建议的约束 。
产生这个:
我甚至手动删除了所有约束并重新开始。
但没有任何作用。
.m文件中没有任何内容可以放置任何内容或调整大小或位置。这种观点没有任何幻想。我做错了什么?
答案 0 :(得分:1)
编辑器>解决自动布局问题> “所有视图”重置为建议的约束几乎从不正常工作。所以只是避免它。
添加约束时,您需要为每个项目指定四件事:
有创造性的方法可以做到这一点,所以对于你我建议你将这些约束添加到查找按钮:
在中心和前导或尾随空间中水平地满足您的x位置和宽度。这两个约束使按钮居中,并在按钮的两侧为您提供相等的空间。按钮将与视图一样宽,减去两侧的空间。设置高度显然满足按钮的高度,顶部空间满足按钮的y位置。因此,您可以轻松地满足按钮的x位置,位置,宽度和高度,您就完成了。
答案 1 :(得分:0)
答案 2 :(得分:0)
你需要重新开始思考你正在制约的约束。想想已知的信息,不应改变的大小。将此信息告诉自动布局。
您的按钮没有显示,因为自动布局不知道如何定位它,它缺少以下数字。删除所有约束并重新开始以下操作。不是你可以改变这个数字。
20.0
0
有保证金0
有保证金0
有保证金0
20.0
答案 3 :(得分:0)
重置为建议的约束从不解决您的问题,它只隐藏警告。您必须设置适合您要求的约束。根据您的问题,当您选择“重置为建议约束”选项时,自动布局将为LOOK UP按钮提供底部布局约束,并且它具有太多的底部约束(当您停留到建议约束时会发生这种情况),因此它在运行时被推高。
您只需要对应于其上方文本字段的按钮的顶部和前导/顶部和中心水平约束以及高度和宽度约束。删除LOOK up按钮的bototm约束。