[英]Can I just ignore “Unable to simultaneously satisfy constraints”?
我正在将现有应用更新为自动布局以支持更多设备尺寸。 我有一些需要动画的对象,而不是使用约束我将它们设置为:
self.secondCounter.translatesAutoresizingMaskIntoConstraints = YES //example
使用旧的setFrame方法。
这似乎工作但在第一个动画上抛出运行时错误:
无法同时满足约束。 可能至少下列列表中的一个约束是您不想要的约束。 试试这个:(1)看看每个约束并试着找出你不期望的东西; (2)找到添加了不需要的约束或约束的代码并修复它。 (注意:如果你看到你不理解的NSAutoresizingMaskLayoutConstraints,请参阅UIView属性translatesAutoresizingMaskIntoConstraints的文档)(“”,“”,“”)
将尝试通过打破约束来恢复
在UIViewAlertForUnsatisfiableConstraints上创建一个符号断点,以便在调试器中捕获它。 在列出的UIView上的UIConstraintBasedLayoutDebugging类别中的方法也可能有所帮助。 2014-10-07 19:41:12.903 AppName [5018:1153922]无法同时满足约束条件。 可能至少下列列表中的一个约束是您不想要的约束。 试试这个:(1)看看每个约束并试着找出你不期望的东西; (2)找到添加了不需要的约束或约束的代码并修复它。 (注意:如果你看到你不理解的NSAutoresizingMaskLayoutConstraints,请参阅UIView属性translatesAutoresizingMaskIntoConstraints的文档)(“”,“”,“”)
将尝试通过打破约束来恢复
在UIViewAlertForUnsatisfiableConstraints上创建一个符号断点,以便在调试器中捕获它。 在列出的UIView上的UIConstraintBasedLayoutDebugging类别中的方法也可能有所帮助。
事实上我没有得到这个消息,因为我没有在这个对象上设置任何约束(我听说Xcode在构建时为默认的自动布局xib中的每个视图设置它们)。
但不知何故,一切看起来都不错,似乎有效。
我可以忽略此消息,还是稍后会遇到问题?
你肯定会遇到问题,需要解决这个问题。 如果您不满足所有约束并且运行时更正系统无法“捏造数字”,则可能导致您的应用程序崩溃。 你可以得到像这样的令人讨厌的消息:
Fatal Exception: NSInvalidArgumentException. Unable to create description in descriptionForLayoutAttribute_layoutItem_coefficient. Something is nil
要解决自动布局问题,请执行以下一些简单步骤:
而已! 查找,修复,测试:)
恕我直言,例外是红鲱鱼。
这些限制是由苹果隐含的管理。 在某些时候,“那边”的几行代码可以间接地影响它们,因此发现为什么你的代码在这里引发异常是一件痛苦的事。
在我的情况下,我发现[cell setHidden:YES]继续并用[cell removeFromSuperview]替换了该代码,问题就消失了。
.... OO编程的租户之一是使APIS安全且易于使用。 不容易伤痕累累和困惑。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.