有时候编译运行显示正常,但是在Xcode的log打印中一些关于约束的警告。
方法:
1、在可能出现问题的视图约束使用地方打断点调试
2、使用MASAttachKeys(视图),在视图初始化中加入此代码;
加入后编译运行后可以在log里查看到具体是哪一个视图控件存在约束问题
3、在Xcode中点击Debug View Hierarchy,如下
在3D图层中查看约束问题
4、打印视图控件层级和地址
在console中输入如下指令
Object-c:
po [[UIWindow keyWindow] _autolayoutTrace]
Swift:
expr -l objc++ -O -- [[UIWindow keyWindow] _autolayoutTrace]
然后根据报错内存地址去查找问题存在的图层视图
5、可以尝试设置某个约束的优先级来去除警告
如: make.right.equalTo(@(10)).priorityHigh
或make.right.equalTo(@(10)).priority(100)