iOS如何定位Masonry约束报错的控件
2019-04-02 本文已影响0人
凶猛老鹰
控制台输出的报错如下

想要定位哪个控件出现问题了,可以按照如下步骤进行
1.添加Symbolic Breakpoint

2.配置Symbol为UIViewAlertForUnsatisfiableConstraints
Action 选择Debugger Command 输入框输入 po [[UIWindow keyWindow] _autolayoutTrace]

3.从新进入报错的页面,Xcode会出现一个断点,如下图所示

4.点击左侧索引停留的位置,右侧会显示断点的具体位置,基本可以确定是EvaluateCell内的某个控件出现约束问题了.

5.点击跳过此断点,直至控制台具体的报错原因


6.此时你只需要在EvaluateCell中去寻找距某一个视图顶部为10,底部为-10的控件了
我这里找到了具体哪一个控件(self.replyL),这个控件的父视图高度为0,不能基于这个高度为0的控件再添加约束,所有会有约束异常
