2017-03-09 58 views
-1

如何找出谁添加了特定的自动布局约束?找出谁添加了特定的自动布局约束

因为我看到一些我肯定没有添加的约束。

+0

您是否已将'translatesAutoresizingMaskIntoConstraints'设置为'false'? – BallpointBen

+0

开始使用故事板和xib来定义约束。你会看到很多这样的问题会消失。例如,可以通过自动调整掩码来创建约束。有时可以在当前约束不充分时自动添加约束。 – Sulthan

+0

@BallpointBen,是的。 –

回答

0

如果布局暧昧不可满足,你可以把一个象征性的断点UIViewAlertForUnsatisfiableConstraints

可以添加含有po [[UIWindow keyWindow] _autolayoutTrace]用于夫特目标C或expr -l objc++ -O -- [[UIWindow keyWindow] _autolayoutTrace]其中自动打印UIView层次结构,以this article desribed一个Debugger Command
您还可以在调试器中使用po $r15来打印“已损坏的约束的详细描述”或po $r14以获得“除破坏约束之外添加的所有约束的更详细描述”,如this article中所述。

如果没有,你可以设置accessibilityIdentifier为您UIView(或directly in the IB将在前面的表达式结果显示(和其他地方也是如此),而不是字符串UIView

1

在斯威夫特你可以看看var identifier: String?。如果它以NS开头,那么它是由iOS添加的。

A constraint’s identifier is available in its description. Identifiers that start with NS are reserved by the system. 
+0

如果不是? –

+0

如果标识符为空,则可能是您通过代码,故事板或XIB添加的约束 – aahrens