动画 Core Animation 直接修改视图属性

UIView视图的动画功能,可以使在更新或切换视图时有放缓节奏、产生流畅的动画效果,进而改善用户体验。UIView可以产生动画效果的变化包括:

位置变化:在屏幕上移动视图。

大小变化:改变视图框架(frame)和边界。

拉伸变化:改变视图内容的延展区域。

改变透明度:改变视图的alpha值。

改变状态:隐藏或显示状态。

改变视图层次顺序:视图哪个前哪个后。

旋转:即任何应用到视图上的仿射变换(transform)


改变

+ (void)animateWithDuration:(NSTimeInterval)duration        // 需要多少时间执行完动画
                      delay:(NSTimeInterval)delay           // 等待多长时间开始执行动画
                    options:(UIViewAnimationOptions)options // 执行选项
                 animations:(void (^)(void))animations      // 执行动画的block
                 completion:(void (^)(BOOL finished))completion    // 动画执行完毕后的block

示例:

[UIView animateWithDuration:3.0
                      delay:0.0
                    options:UIViewAnimationOptionBeginFromCurrentState
                 animations:^{myView.alpha = 0.0;}
                 completion:^(BOOL finished){if(finished) [myView removeFromSuperview];}];

上面的动画表示,立即将视图透明度设为0,动画执行3秒,立即执行动画,执行完毕后删除此视图


通过动画修改整个视图状态,使用此方法

+ (void) transitionWithView:(UIView *)view                  // 目标视图
                   duration:(NSTimeInterval)duration        // 需要多少时间执行完动画
                    options:(UIViewAnimationOptions)options // 执行选项
                 animations:(void (^)(void))animations      // 执行动画的block
                 completion:(void (^)(BOOL finished))completion      // 动画执行完毕后的block

改变视图层级,用另一个视图代替原始图,使用此方法

+ (void) transitionFromView:(UIView *)fromView              // 原视图
                     toView:(UIView *)toView                // 目标视图
                   duration:(NSTimeInterval)duration        // 需要多少时间执行完动画
                    options:(UIViewAnimationOptions)options // 执行选项
                 completion:(void (^)(BOOL))completion      // 动画执行完毕后的block




options选项:

常规动画属性设置(可以同时选择多个进行设置)

UIViewAnimationOptionLayoutSubviews:动画过程中保证子视图跟随运动。
UIViewAnimationOptionAllowUserInteraction:动画过程中允许用户交互。
UIViewAnimationOptionBeginFromCurrentState:所有视图从当前状态开始运行。
UIViewAnimationOptionRepeat:重复运行动画。
UIViewAnimationOptionAutoreverse :动画运行到结束点后仍然以动画方式回到初始点。
UIViewAnimationOptionOverrideInheritedDuration:忽略嵌套动画时间设置。
UIViewAnimationOptionOverrideInheritedCurve:忽略嵌套动画速度设置。
UIViewAnimationOptionAllowAnimatedContent:动画过程中重绘视图(注意仅仅适用于转场动画)。  
UIViewAnimationOptionShowHideTransitionViews:视图切换时直接隐藏旧视图、显示新视图,而不是将旧视图从父视图移除(仅仅适用于转场动画)
UIViewAnimationOptionOverrideInheritedOptions :不继承父动画设置或动画类型。

动画速度控制(可从其中选择一个设置)

UIViewAnimationOptionCurveEaseInOut:动画先缓慢,然后逐渐加速。
UIViewAnimationOptionCurveEaseIn :动画逐渐变慢。
UIViewAnimationOptionCurveEaseOut:动画逐渐加速。
UIViewAnimationOptionCurveLinear :动画匀速执行,默认值。

转场类型(仅适用于转场动画设置,可以从中选择一个进行设置,基本动画、关键帧动画不需要设置)

UIViewAnimationOptionTransitionNone:没有转场动画效果。
UIViewAnimationOptionTransitionFlipFromLeft :从左侧翻转效果。
UIViewAnimationOptionTransitionFlipFromRight:从右侧翻转效果。
UIViewAnimationOptionTransitionCurlUp:向后翻页的动画过渡效果。    
UIViewAnimationOptionTransitionCurlDown :向前翻页的动画过渡效果。    
UIViewAnimationOptionTransitionCrossDissolve:旧视图溶解消失显示下一个新视图的效果。    
UIViewAnimationOptionTransitionFlipFromTop :从上方翻转效果。    
UIViewAnimationOptionTransitionFlipFromBottom:从底部翻转效果。






  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值