Masonry学习之基本动画
来源:互联网 发布:淘宝买家最高等级 编辑:程序博客网 时间:2024/05/29 14:03
先看效果:
动画说明:
这个简单动画的实质就是三个视图之间及三个视图与父视图之间的距离由10到100的重复不断的变化。
代码说明:
将需要做动画的约束保存起来:
[self.animatableConstraints addObjectsFromArray:@[ make.edges.equalTo(superview).insets(paddingInsets).priorityLow(), make.bottom.equalTo(blueView.mas_top).offset(-padding), ]];
子视图添加之后,设置动画标记为YES,并调用动画方法,传入参数NO,表示初始状态是由10->100,而不是由100->10:
- (void)didMoveToWindow { [self layoutIfNeeded]; if (self.window) { self.animating = YES; [self animateWithInvertedInsets:NO]; }}
- (void)willMoveToWindow:(UIWindow *)newWindow { self.animating = newWindow != nil;}
实现动画:
- (void)animateWithInvertedInsets:(BOOL)invertedInsets { // 动画标记为NO,不执行动画 if (!self.animating) return; // 如果是反向,则间距为100;如果不是,则使用当前记录的值 int padding = invertedInsets ? 100 : self.padding; // 设置新的间距给约束 UIEdgeInsets paddingInsets = UIEdgeInsetsMake(padding, padding, padding, padding); for (MASConstraint *constraint in self.animatableConstraints) { constraint.insets = paddingInsets; } // 执行动画 [UIView animateWithDuration:1 animations:^{ [self layoutIfNeeded]; } completion:^(BOOL finished) { //repeat! [self animateWithInvertedInsets:!invertedInsets]; }];}
阅读全文
0 0
- Masonry学习之基本动画
- Masonry学习之基本布局
- Masonry学习之UILabel
- Masonry学习之UIScrollView
- Masonry学习之Array
- Masonry学习之更新约束
- Masonry学习之使用常量
- Masonry学习之复合edges
- Masonry学习之aspect fit
- Masonry学习之链式属性
- Masonry学习之Distribute View
- Masonry学习之Layout Guides
- iOS 自动布局框架学习之Masonry
- iOS学习之Masonry第三方约束
- Masonry学习之设置新的约束
- Masonry学习之布局边距
- Masonry学习
- Masonry学习
- 我前妻的故事:一个初中肄业生从月…
- "白日梦"的好处:让人更有效率
- 决定成败的,绝对不只是细节
- 懵懂的猪:红场枭雄
- 必须学会拒绝
- Masonry学习之基本动画
- 人既然知道努力就可以进步,为什么…
- lintcode 14. 二分查找
- 你不是骄傲,而是活得太傲娇了
- 亲戚到底是一种怎样的神奇存在
- 为什么以前对你好的同学,现在都不…
- 永远不要舍弃独处,即使你会孤独
- BZOJ 4289(PA2012 Tax-最短路)
- 请不要再这样逗孩子了