Masonry踩坑

1.cornerRadius和borderWidth设置无效问题

这是由于给view设置约束之后,view的frame并不会立刻确定,而是会在viewWillLayoutSubviews之后才会去确定。
因此显而易见,设置圆角和描边应该在viewDidLayoutSubviews方法里面去做。

- (void)viewDidLayoutSubviews {
    [super viewDidLayoutSubviews];
    
    self.exchangeButton.layer.cornerRadius = _exchangeButton.frame.size.height / 2;
}

2.设置动画无效问题

在block里面更新约束是没有动画效果的,需要调用做动画的View的layoutIfNeeded才行

[UIView animateWithDuration:0.5 animations:^{
    [self.progressBarForeground mas_updateConstraints:^(MASConstraintMaker *make) {
        make.right.mas_equalTo(@0);
    }];
            
    [self.progressBarForeground  layoutIfNeeded];
}];

你可能感兴趣的:(Masonry踩坑)