你的位置:首页 > 操作系统

[操作系统]iOS开发日记16


今天博主有一个动画Animation的需求,遇到了一些困难点,在此和大家分享,希望能够共同进步.

iOS开发中的动画分为两种:一种为UIView动画,又称隐式动画,动画后frame的数值发生了变化.另一种是CALayer动画,又称显示动画,动画后模型层的数据不会发生变化,图形回到原来的位置.但是在实际开发中,因为UIView可以相应用户交互,所以UIView动画用的多.

一.UIview的动画

1.实现方式:动画块,block

begin

//设置动画效果  修改属性值,动画时长等等

conmmit

2.属性动画,过渡动画

①属性动画支持6种:transform 结构体 6个

②过渡动画:容器视图,两个子视图

二.CALayer动画  ==   核心动画   ==   CAAnimation动画

CAAnimation  抽象类

animation

①.CAAnimationGroup  组合动画

②.CATransition  过渡动画

③.CAPropertyAnimation  属性动画(layer的属性)

animationWithKeyPath

CABasicAnimation  基本动画

fromValue toValue

CAKeyFrameAnimation  关键帧动画

values

下面贴出UIView动画的代码,与大家分享,CALayer动画,也就是Core Animation各位看官可以自行百度.

1.

    //使用动画块设置动画

    

    //开始设置动画 第一个参数:动画的名字 第二个参数:可以用来传值

    [UIView beginAnimations:@"哈哈" context:nil];

    

    //设置动画的时长

    [UIView setAnimationDuration:1.5];

    [UIView setAnimationRepeatAutoreverses:YES];

    

    //根据需求设置视图的属性变化

    _showView.backgroundColor=[UIColor grayColor];

    _showView.center=CGPointMake(200, 200);

    

    //提交动画设置,开始执行动画

    [UIView commitAnimations];

 2.

    //使用Block设置动画

    

    [UIView animateWithDuration:1.5 animations:^{

        

        //动画效果设置

        _showView.backgroundColor=[UIColor yellowColor];

        //延时

        [UIView setAnimationDelay:1.0];

 

        //可以通过设置transform实现视图移动

          

    } completion:^(BOOL finished) {

        

        //动画完成后的设置

        NSLog(@"动画完成");

    }];