iOS

iOS Masonry自动布局现实动画效果

2019-11-05  本文已影响0人  恋空K

想要更新约束时添加动画,就需要调用关键的一行代码:setNeedsUpdateConstraints,这是选择对应的视图中的约束需要更新。

对于updateConstraintsIfNeeded这个方法并不是必须的,但是有时候不调用就无法起到我们的效果。但是,官方都是这么写的,从约束的更新原理上讲,这应该写上。我们要使约束立即生效,就必须调用layoutIfNeeded此方法。看下面的方法,就是动画更新约束的核心代码:

// 告诉self.view约束需要更新

[self.view setNeedsUpdateConstraints];

// 调用此方法告诉self.view检测是否需要更新约束,若需要则更新,下面添加动画效果才起作用

[self.view updateConstraintsIfNeeded];

[UIView animateWithDuration:0.3 animations:^{

  [self.view layoutIfNeeded];

}];

[btn mas_updateConstraints:^(MASConstraintMaker *make) {

        make.height.width.equalTo(@(200));

    }]; 放到animateWithDuration外面也是可以的。最主要的就是要在里面调用layoutIfNeeded这个方法

上一篇下一篇

猜你喜欢

热点阅读