Masonry 通过 UIView 起动画时出现约束冲突,并且没

2019-03-31  本文已影响0人  NapoleonY

概述

使用 UIView 起动画,通过 Masonry 设置的约束

+ (void)animateWithDuration:(NSTimeInterval)duration animations:(void (^)(void))animations completion:(void (^)(BOOL finished))completion;

发现了两个问题

  1. 并没有动画效果
  2. Masonry 报问题:约束有冲突

原因

经过观察代码发现

  1. UIView 在使用 Masonry 设置约束时,当起动画时,需要在 animations Block 中调用 [self layoutIfNeeded] 刷新 superView
  2. 在 UIView animation 中需要使用 Masonry mas_remakeConstraints 更新约束,否则就会报 “约束冲突”的问题,因为 mas_makeConstraints 只负责新增约束,不能同时存在两条针对于同一对象的约束

其他

mas_updateConstraintsmas_remakeConstraints 的区别

上一篇 下一篇

猜你喜欢

热点阅读