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
推荐阅读
- 由浅入深理解AOP
- 【译】20个更有效地使用谷歌搜索的技巧
- 2020-04-07vue中Axios的封装和API接口的管理
- mybatisplus如何在xml的连表查询中使用queryWrapper
- MybatisPlus|MybatisPlus LambdaQueryWrapper使用int默认值的坑及解决
- MybatisPlus使用queryWrapper如何实现复杂查询
- iOS中的Block
- Linux下面如何查看tomcat已经使用多少线程
- 使用composer自动加载类文件
- android|android studio中ndk的使用