比如想做一个最简单的位移动画:
关键点在,改完约束后,调用下面这段代码,父view调用 layoutIfNeeded
[UIView animateWithDuration:0.5 animations:^{
[self.view layoutIfNeeded];
}];
#import "ViewController.h"
#import <Masonry.h>
@interface ViewController ()
@property (nonatomic, strong) UIView *myView;
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
self.myView = [UIView new];
self.myView.backgroundColor = [UIColor redColor];
[self.view addSubview:self.myView];
[self.myView mas_remakeConstraints:^(MASConstraintMaker *make) {
make.top.mas_equalTo(self.view).offset(100);
make.left.mas_equalTo(self.view).offset(100);
make.width.mas_equalTo(100);
make.height.mas_equalTo(100);
}];
}
- (IBAction)clickButton:(id)sender {
[self.myView mas_remakeConstraints:^(MASConstraintMaker *make) {
make.top.mas_equalTo(self.view).offset(300);
make.left.mas_equalTo(self.view).offset(100);
make.width.mas_equalTo(80);
make.height.mas_equalTo(80);
}];
[UIView animateWithDuration:0.5 animations:^{
[self.view layoutIfNeeded];
}];
}
@end