XIB之显示在控制台中的冲突约束

来源:互联网 发布:md5加密Java应用 密钥 编辑:程序博客网 时间:2024/05/21 10:49

不知道大家遇到过那种情况没,就是自己拉的XIB没有约束警告,在真机或者模拟器上也都没有什么错,界面都是对的,不管是在4,5,6,6S,6p等你的界面都是显示正确的,也没有乱,一切看起来是那么的正确,可是在控制台中有。。看下图:


如果你和我一样遇到过这种情况,请别急,没事,但是肯定需要改,可能有些同学会感觉又不影响,管它呢,反正我的项目布局是正确的就OK啊,可是我想告诉你

第一:这个不解决,早晚会乱,就像一个定时炸弹一样,说不定什么时候就爆了呢。

第二:你封装的这个控件是拿去所有人用的,别人看着你这一大堆冲突,不害怕啊大笑

开个玩笑,下边步入正题:

为什么会出现这种情况?

很明显,约束冲突了。

为什么会冲突,我明明是把那些XIB中的约束警告都解决了啊,怎么会出现这种情况?

因为,你在你布的模拟器上可以,比如说你是以5为基础进行布局的,那么在6SP上就会出现这种情况。

可是,我都是看着没有冲突的,里边我都是做自适应的啊,怎么还会出现这种情况?

问题就出在你是自适应的,举一个简单的例子,你第一行布局了10个button,让它自适应屏幕,你还把10个button等宽了,然后你还设置了第一个button的宽,,左右间隔你设置了,在5上你肯定没问题,可是在6SP上呢?6SP会自适应,可是,他就会出现这种情况,你在6SP上布局也是正确的,但就是会出现这么一大堆的吓唬人的东西,因为你多了一个约束,就是第一个button的宽,这就相当于什么呢,人家自适应过之后,每个button的宽是50,然后你又给人家了一条约束是你宽慰40啊,你说让人家怎么遵守,人家只能按照那个自适应的宽的布局了,同时来提醒你一下,哥们,你这个我没法遵守,你看看怎么解决吧,不解决我随时可能会乱的哦!

既然出现这种问题了,怎么解决?

上边分析过了原因,那到底怎么解决呢。很好解决,看看控制台说的还是很清楚的,说什么呢,看看这张图片,里边说的全是”H“,说明什么,说明我们在适应不同屏幕的时候高或vertical constraint是没问题,但是宽或Horizontal Constraint是有问题的,里边还指出了具体哪个button了,那我们就可以直接找到那个button了,删除多余的约束就OK了。

0 0