iOS动画之-基础动画

基础动画

基础动画主要用于改变视图属性,比如修改视图的位置、大小、透明度,角度等属性。可以直接用系统的animateWithDuration相关方法。主要介绍以下几个方法的用途,如下所求:

+ (void)animateWithDuration:(NSTimeInterval)duration animations:(void (^)(void))animations completion:(void (^ __nullable)(BOOL finished))completion

基础动画,通过代码改变相关属性来执行。

  • duration
    表示动画的执行时间
  • animations
    执行动画相关的代码
  • completion
    执行完成后回调

+ (void)animateWithDuration:(NSTimeInterval)duration delay:(NSTimeInterval)delay usingSpringWithDamping:(CGFloat)dampingRatio initialSpringVelocity:(CGFloat)velocity options:(UIViewAnimationOptions)options animations:(void (^)(void))animations completion:(void (^ __nullable)(BOOL finished))completion

带有弹簧效果的动画

  • duration
    表示动画的执行时间
  • animations
    执行动画相关的代码
  • completion
    执行完成后回调
  • delay
    动画延迟多久执行
  • dampingRatio
    设置震荡的强度,1表示匀速,数值越小,震荡越大
  • velocity
    弹簧速度,数值越大,形变越快。
  • options
    用于设置动画效果,比如设置先快后慢,先慢后快等。
[UIView animateWithDuration:ML_ANIMATION_DURATION delay:0 usingSpringWithDamping:0.5 initialSpringVelocity:0.6 options:UIViewAnimationOptionCurveEaseIn animations:^{
        CGRect _frame = self.frame;
        _frame.origin.x = x;
        self.frame = _frame;
    } completion:^(BOOL finished) {
        
    }];

** + (void)transitionFromView:(UIView *)fromView toView:(UIView *)toView duration:(NSTimeInterval)duration options:(UIViewAnimationOptions)options completion:(void (^ __nullable)(BOOL finished))completion **

用于实现视图切换的动画

  • fromView
    当前视图
  • toView
  • 切换后的视图
    如下所示,用于实现视图的翻转。
[UIView transitionFromView:self.animationView toView:self.backView duration:0.8 options:UIViewAnimationOptionTransitionFlipFromLeft completion:^(BOOL finished) {
        
    }] ;

**+ (void)performSystemAnimation:(UISystemAnimation)animation onViews:(NSArray<__kindof UIView > )views options:(UIViewAnimationOptions)options animations:(void (^ __nullable)(void))parallelAnimations completion:(void (^ __nullable)(BOOL finished))completion

可以设置多个视图执行动画,动画执行完后,将删除视图。

  • animation
    枚举,只有一个删除的枚举UISystemAnimationDelete
  • views
    视图数组
[UIView performSystemAnimation:UISystemAnimationDelete onViews:@[self.animationView,self.backView] options:UIViewAnimationOptionCurveEaseIn animations:^{
        CGRect _frame = self.animationView.frame;
        _frame.origin.x = 279;
        self.animationView.frame = _frame;
    } completion:^(BOOL finished) {
        
    }];

对基础动画进行了一些封装,�主要包括平移、缩放、旋转、翻转等。代码提交在github中。
demo
个人博客

你可能感兴趣的:(iOS动画之-基础动画)