mas_updateConstraints更新约束引起的约束冲突

最近发现购物车的列表非常的卡顿,才觉得解决约束冲突是多么重要的。

Imagem de capa

typora-copy-images-to: ipic —

问题描述

最近发现购物车的列表非常的卡顿,才觉得解决约束冲突是多么重要的。

在这个试图上面 Promo 按钮和后面的文字后面可能会出现一个小图标。

初始化显示文字的 UILable 约束如下。

label.leading.equalTo(promoButton.mas_traling).offset(10);

最后获取到服务器信息之后我是下面的更新约束。

if(isCrossShop) {
    label.leading.equalTo(crossShopImageView.mas_traling).offset(10);
} else {
    label.leading.equalTo(promoButton.mas_traling).offset(10);
}

代码看是没什么问题的,并且界面表现都是十分正常的。为什么输出会报约束冲突呢。

后来发现约束冲突出现的原因如下。

我们上面的约束冲突就是第二种冲突约束。

解决办法

如果更新约束 需要设置新的约束条件和更换约束对比对象,可以使用mas_remakeConstraints这个方法。

mas_remakeConstraints这个对比更新约束会慢很多,但是造成约束卡很多。还是mas_remakeConstraints比较好。