很久没有敲代码了,手真的生了。想要实现一个自定义ActionSheet
的动画,使用的是Masonry
布局,然而尝试许久都没看到动画效果,所以狂百度。然而百度了辣么多种方法,没有一种对我是有用的,也许是因为我的视图层级太多了,没办法,只能一行代码一行代码的尝试,从一行行注释到一行行替换执行顺序,在我将要进行下一次尝试的时候,动画效果出来了,T_T 我把动画时间写太长了。。。下面直接上代码吧
- (void)viewDidLoad {
[super viewDidLoad];
/// 添加视图
[self.view addSubviews:self.bottomView];
/// 1.初始布局
[self.bottomView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.right.mas_equalTo(0);
make.bottom.mas_equalTo(kBYScreen_Height);
}];
}
- (void)show {
/// 2.在这里先对布局约束进行更新
[self.bottomView mas_updateConstraints:^(MASConstraintMaker *make) {
make.bottom.mas_equalTo(0);
}];
[UIView animateWithDuration:0.3 animations:^{
/// 注意:
/// 3.这里一定是要做动画的视图的父视图,或者父视图的父视图,总之就是比它辈分高的
[self.bottomView.superView layoutIfNeeded];
/// 这里可以处理其他的事情,比如改变父视图的透明度
} completion:^(BOOL finished) {
}];
}
这里简单记录一下,免得下一次又忘记了!!!
网友评论