iOS Masonry使用注意事项

2019-07-24  本文已影响0人  邓布利多教授

需要先调用addsubview方法把yourView添加到父视图上。

1、添加约束

[self.yourView mas_makeConstraints:^(MASConstraintMaker *make) {
        make.top.mas_equalTo(100);
        make.height.mas_equalTo(30);
        make.left.mas_equalTo(20);
        make.right.mas_equalTo(-20);
}];

2、移除之前的所有约束,并使用block里面的新约束重新布局

[self.yourView mas_remakeConstraints:^(MASConstraintMaker *make) {
        make.top.mas_equalTo(200);
        make.height.mas_equalTo(50);
        make.left.mas_equalTo(20);
        make.right.mas_equalTo(-20);
}];

3、更新约束

[self.yourView mas_updateConstraints:^(MASConstraintMaker *make) {
       make.top.mas_equalTo(400);
}];

4、简易动画

  • 如果yourView需要添加动画,必须执行父视图的layoutIfNeeded方法,因为视图动画frame的变动是相对父视图的,所以父视图需要执行layoutIfNeed才会重新布局对应的UI。
  • 如果用yourView执行layoutIfNeed只会重新布局,不会产生动画。
  • 可以写成[self.view layoutIfNeeded];或者[self.yourView.superview layoutIfNeeded];
[UIView animateWithDuration:0.5 animations:^{
            
       [self.yourView mas_updateConstraints:^(MASConstraintMaker *make) {
            make.top.mas_equalTo(600);
       }];
       [self.view layoutIfNeeded];
            
}];

5、全剧终

上一篇 下一篇

猜你喜欢

热点阅读