IOS 动画效果

1.用UIImageView 作出动画效果

UIImageView 允许通过播放舒张静态图文件的方式来达到动画的效果。这个效果有点像早期在制作网页时用到得GIF图文件。

//先把要播放的画面顺序排好

NSMutableArray *anims = [[NSMutable alloc] init];
UIImage *img1 = [UIImage imageNamed:@"pic1.png"];
UIImage *img2 = [UIImage imageNamed:@"pic2.png"];

[anim addObject:img1];
[anim addObject:img2];

//再用UIImageView 播放画面

UIImageView *imageView = [[UIImageView alloc]
initWithFrame:CGRectMake(0.0f,0.0f,40.0f,40.0f)];
imageView.animationImages = anims;
imageView.animationDuration = 1.0f;   //播放一次动画所需的时间
imageView.animationRepeatCount = 0;   //一直播放
[imageView starAnimating];

2.UIView 内建的动画效果

这个方式主要用于两个画面切换时或是在同一个界面产生变化的动画效果的时候,也是最常使用的一种方式。

//界面变化前的代码
//...
[UIView beginAnimations:@"myAnim" context:NULL];  //动画开始
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];   //动画时间曲线
[UIView setAnimationDuration:0.5f];     //动画时间

//画面变化后的程序代码

//...

[UIView commitAnimations];       //画面结束

要利用这种方式做到动画效果,必须把画面变化后的程序代码放在beginAnimations:context:与commitAnimations之间,然后给予一个动画时间以及动画的时间曲线,IOS会自动计算出变化前与变化后的正确路径,一个完整的动画效果可以区分为动画开始,动画时间曲线或动画效果,动画时间与动画结束。

  • 动画开始
+(void)beginAnimations:(NSString *)animationId context:(void *) context;

这是一个静态的方法,用来定义一个动画的开始,其中,animationId 是应用程序内所设置的一个Id,可以任意命名这个Id用以识别这个动画程序段。

  • 动画时间曲线
+(void)setAnimationCurve:(UIViewAnimationCurve)curve

用来定义动画播放的时间曲线,可以使用的类型包括以下几种

UIViewAnimationCurveLinear:整个动画过程的播放速度保持一致。
UIViewAnimationCurveEaseIn:在动画开始时慢慢加速,到快结束的适合则保持一定的速度,形成S曲线的前半段。
UIViewAnimationCurveEaseOut:在动画开始时很快加速,然后在慢慢减速形成S曲线的后半段。
UIViewAnimationCurveEaseInOut:在动画开始时慢慢加速,在结束前也慢慢减速,构成一个完整的S曲线。这个效果是最常用的。

  • 动画播放时间
+(void)setAnimationDuration:(double) delay

定义动画的播放时间,以秒为单位,默认为0.25s。

  • 动画结束
+(void)commitAnimations;

整个动画程序段的结束。

你可能感兴趣的:(IOS 动画效果)