iOS|iOS 使用mas_key快速定位Masonry布局冲突(二)

篇幅一,介绍了为什么可以通过mas_key 定位问题。如下:
https://www.jianshu.com/p/710f742ca71a
【iOS|iOS 使用mas_key快速定位Masonry布局冲突(二)】如果一个布局很多的页面,突然出现这种问题呢?比如下面的,

Probably at least one of the constraints in the following list is one you don't want. Try this: (1) look at each constraint and try to figure out which you don't expect; (2) find the code that added the unwanted constraint or constraints and fix it. ( "", "", "" )

信息只有UILabel UIView,我们可以通过runtime,获取到ivar 信息,然后手动给ivar 设置mas_key 值。
代码如下:
uint32_t ivarCount; Ivar *ivars = class_copyIvarList([self class], &ivarCount); if(ivars) { for(uint32_t i=0; i

通过判断ivar 是不是UIView 的子类,然后设置mas_key 的值为ivar的name.这样子提示信息就很详细了。
可以提取一个全局的函数出来
/* * 设置ivar 的 mas_key 值为 对应的名字比如 @interface PBTTestClass : NSObject @property (nonatomic, strong) UIButton *payButton; @end PBTTestClass *c = [PBTTestClass new]; autoSetClassMas_key(c); 就设置 c.payButton.mas_key = @"_payButton"; * */static void autoSetClassMas_key(NSObject *instance) {uint32_t ivarCount; Ivar *ivars = class_copyIvarList(instance.class, &ivarCount); if(ivars) { for(uint32_t i=0; i

    推荐阅读