美文网首页iOS新手学习
两种方法快速定位使用Masonry布局时出现的约束警告

两种方法快速定位使用Masonry布局时出现的约束警告

作者: Dxc_iOS | 来源:发表于2018-08-30 10:30 被阅读384次

前言:相信很多小伙伴在使用Masonry布局都会遇到这种无问题:页面通常也会正常显示,控制台会打印出一堆警告的信息,看着很是头疼。

如何定位出错的是哪个控件约束呢?

微博上看到Lefe_x#iOS知识小集#里面的一篇 「 如何快速定位哪个 View 出现了约束警告? 」 解决方法:
就是把 View 的内存地址换成了具体的 View,其实我们可以通过 Xcode 中的 【Debug View Hierarchy】,根据约束警告的内存地址(比如:0x147f56930)找到内存地址对应的 View(),把内存地址粘贴到搜索框,然后一样做替换操作,即可解决约束警告。

这个【Debug View Hierarchy】(不明白的小伙伴点击这个)也就是Xcode自带的视图调试功能,可以让开发者看到视图的层次,控件的大小和位置,而且会以3D效果显示当前视图的层次。

不过还有另一种方法:就是使用Masonry自带的 MASAttachKeys 宏来给view添加key,然后有约束警告的话就会知道具体哪个View布局有问题。

UIButton *btn1 = [UIButton buttonWithType:UIButtonTypeCustom ];
btn1.backgroundColor = [UIColor redColor];
MASAttachKeys(btn1);//Masonry 布局冲突快速定位,设置key必须在布局之前设置,否则无效!
[self.view addSubview:btn1];
[btn1 mas_makeConstraints:^(MASConstraintMaker *make) {
    make.left.top.offset(80);
    make.size.mas_equalTo(CGSizeMake(100, 100));
}];
//    制造约束冲突
[btn1 mas_makeConstraints:^(MASConstraintMaker *make) {
    make.left.top.offset(100);
    make.size.mas_equalTo(CGSizeMake(100, 100));
}];

控制台打印:

(
"<MASLayoutConstraint:0x6000000b1640 UIButton:btn1.left == UIView:0x7ff608e02720.left + 80>",
"<MASLayoutConstraint:0x6000000b1d60 UIButton:btn1.left == UIView:0x7ff608e02720.left + 100>"
)

于是乎。。。。,修改吧,去掉那些烦人😠的约束警告。

相关文章

  • 两种方法快速定位使用Masonry布局时出现的约束警告

    前言:相信很多小伙伴在使用Masonry布局都会遇到这种无问题:页面通常也会正常显示,控制台会打印出一堆警告的信息...

  • Masonry 布局冲突快速定位

    MASonry 布局冲突快速定位 如果调试的时候,出现布局冲突,可以使用 MASAttachKeys 宏来给vie...

  • iOS中的一些常见问题,和解决方法

    1.Masonry 的使用, 当出现一堆约束警告的时候, 无法判断是哪个View 出现了约束问题的时候可以使用 M...

  • 屏蔽烦人的Masonry约束警告控制台输出

    在使用Masonry布局框架时,有时候因为使用不当会导致约束冲突,会在控制台输出类似这样的警告 这类输出很烦,少的...

  • iOS Masonry使用总结

    Masonry布局定位约束冲突 视图布局添加约束的时候,有的时候会报一对约束冲突:Probably at leas...

  • iOS 使用Masonry出现约束警告问题

    在使用Masonry时候,有时候虽然界面显示正常,但是log里面会出现如下类似的警告。 一.问题描述: [Layo...

  • Masonry Frame

    Masonry 和 Frame 使用masonry布局时 不会创建frame 解决方法: 添加 - layoutI...

  • Masonry使用方法

    Masonry的使用 Masonry的github地址 Masonry的基本使用方法 给控件添加约束使用Mason...

  • iOS Masonry使用笔记

    关于在使用Masonry中遇到的问题 一、约束警告 上面的问题是由于系统判定代码和编辑器中可能出现了重复约束,可以...

  • 0707-Masonry

    Masonry masonry中去处mas的宏 masonry的使用方法 约束添加基本方式 约束的类型: 尺寸:w...

网友评论

    本文标题:两种方法快速定位使用Masonry布局时出现的约束警告

    本文链接:https://www.haomeiwen.com/subject/tnfrwftx.html