博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
masonry 使用 UIView 的动画
阅读量:5896 次
发布时间:2019-06-19

本文共 1523 字,大约阅读时间需要 5 分钟。

在创建一个 view 的时候,给这个 view 一个从下弹出的动画,以前使用 frame 做布局的时候,很简单的就用 UIViewAnimation 就做出来了,可是现在APP 布局用的是 masonry,直接在设置好初始 layout 后就更新,发现并没有动画,而是直接就显示了出来,后来发现是需要 view 先更新第一次的约束,动画执行后在执行一个更新约束才能出现动画 代码如下(项目中的代码,没有做整理,理解理解思路就行):

- (GoodDetailSelectNumView *)selectNumView {    if (!_selectNumView) {        _selectNumView = [[GoodDetailSelectNumView alloc] init];        [self.view addSubview:_selectNumView];        [_selectNumView mas_makeConstraints:^(MASConstraintMaker *make) {            make.bottom.mas_equalTo(150);            make.width.equalTo(self.view);            make.height.mas_equalTo(150);        }];        // 注意需要先执行一次更新约束        [self.view layoutIfNeeded];                __weak typeof(self) weakSelf = self;        _selectNumView.exitSelectNum = ^{            [weakSelf removeSelectView];        };        [UIView animateWithDuration:0.3 animations:^{            [_selectNumView mas_updateConstraints:^(MASConstraintMaker *make) {                make.bottom.mas_equalTo(-50);            }];            // 注意需要再执行一次更新约束            [self.view layoutIfNeeded];        }];    }    return _selectNumView;}复制代码

- (void)removeSelectView {    [UIView animateWithDuration:0.3 animations:^{        [_selectNumView mas_updateConstraints:^(MASConstraintMaker *make) {            make.bottom.mas_equalTo(150);        }];        [self.view layoutIfNeeded];    } completion:^(BOOL finished) {        [_selectNumView removeFromSuperview];        _selectNumView = nil;    }];}复制代码

转载于:https://juejin.im/post/5a93c9455188257a5e576adf

你可能感兴趣的文章
实验五
查看>>
3-继承
查看>>
海归千千万 为何再无钱学森
查看>>
vue2.0 仿手机新闻站(六)详情页制作
查看>>
JSP----九大内置对象
查看>>
Java中HashMap详解
查看>>
delphi基本语法
查看>>
沙盒目录介绍
查看>>
260. Single Number III
查看>>
Hadoop生态圈-Kafka的完全分布式部署
查看>>
css的border的solid
查看>>
[MODx] Build a CMP (Custom manager page) using MIGX in MODX 2.3 -- 1
查看>>
jQuery自动完成点击html元素
查看>>
[算法]基于分区最近点算法的二维平面
查看>>
webpack多页应用架构系列(七):开发环境、生产环境傻傻分不清楚?
查看>>
笨办法学C 练习1:启用编译器
查看>>
树的总结--树的性质(树的深度) leetcode
查看>>
nagios短信报警(飞信fetion20080522004-linrh4)
查看>>
【Android游戏开发之六】在SurfaceView中添加组件!!!!并且相互交互数据!!!!...
查看>>
linux 将大文件分成小文件
查看>>