看到一篇文章讲ios的动画,UIViewAnimation动画与CATransition类动画

目录(?)[+]

UIViewAnimation动画与CATransition类动画

1.使用UIView类函数实现:

//UIViewAnimationTransitionFlipFromLeft,向左转动

//UIViewAnimationTransitionFlipFromRight,向右转动

//UIViewAnimationTransitionCurlUp,向上翻动

//UIViewAnimationTransitionCurlDown,向下翻动

[UIViewbeginAnimations:@"animationID"context:nil];

[UIViewsetAnimationDuration:0.5f];//动画时长

[UIViewsetAnimationCurve:UIViewAnimationCurveEaseInOut];

[UIViewsetAnimationTransition:UIViewAnimationTransitionFlipFromLeftforView:self.viewcache:YES]; //给视图添加过渡效果

//在这里写你的代码.

[UIViewcommitAnimations];//提交动画

2.使用CATransition对象来实现:

CATransition比较强大,一般可以使用CATransition模拟UIView的动画。

CATransition*animation=[CATransitionanimation];

animation.delegate=self;

animation.duration=0.5f;//动画时长

animation.timingFunction=UIViewAnimationCurveEaseInOut;

animation.fillMode=kCAFillModeForwards;

animation.type=@”cube”;//过度效果

animation.subtype=@”formLeft”;//过渡方向

animation.startProgress=0.0//动画开始起点(在整体动画的百分比)

animation.endProgress=1.0;//动画停止终点(在整体动画的百分比)

animation.removedOnCompletion=NO;

[self.view.layeraddAnimation:animationforKey:@"animation"];

转自:http://www.cnblogs.com/project/archive/2011/09/27/2193556.html

实现iPhone漂亮的动画效果主要有两种方法:

一种是UIView层面的,

一种是使用CATransition进行更低层次的控制,

第一种是UIView,UIView方式可能在低层也是使用CATransition进行了封装,它只能用于一些简单的、常用的效果展现,这里写一个常用的示例代码,供大家参考。

Cpp代码

[UIView beginAnimations:@"Curl"context:nil];//动画开始

[UIView setAnimationDuration:0.75];

[UIView setAnimationDelegate:self];

[UIView setAnimationTransition:UIViewAnimationTransitionCurlUp forView:myview cache:YES];

[myview removeFromSuperview];

[UIView commitAnimations];

第二种方式相对复杂一些,但如果更好的进行控制,还是使用这种方法吧,

基本使用方法可以看一下如下例子:

Cpp代码

CATransition *animation = [CATransition animation];

[animation setDuration:1.25f];

[animation setTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseIn]];

[animation setType:kCATransitionReveal];

[animation setSubtype: kCATransitionFromBottom];

[self.view.layer addAnimation:animation forKey:@"Reveal"];

这里使用了setType与setSubtype组合,这使用个比较保险,因为他的参数就是官方API里定义的,他们的参数说明可以参考如下:

[animation setType:@"suckEffect"];

这里的suckEffect就是效果名称,可以用的效果主要有:

Cpp代码

pageCurl 向上翻一页

pageUnCurl 向下翻一页

rippleEffect 滴水效果

suckEffect 收缩效果,如一块布被抽走

cube 立方体效果

oglFlip 上下翻转效果

iphone中CABasicAnimation和UIView动画的区别[转]

关于UIView动画:

[UIView beginAnimations:@"zoom out"context:nil];

[UIView setAnimationDuration:1.f];

[UIView setAnimationCurve:UIViewAnimationCurveEaseOut];

cover.transform=CGAffineTransformMakeScale(9.25,7.05);

cover.center=CGPointMake(430,512);

[UIViewcommitAnimations]

UIView动画是应用在一个view上面的。

关于CABasicAnimation动画:

-(CAAnimation*)animationMove:(CGPoint)rootCenter

{

CABasicAnimation*animationMove

=[CABasicAnimation animationWithKeyPath:@"position"];

animationMove.duration=1;

animationMove.autoreverses=NO;

//animationMove.delegate = self;

animationMove.removedOnCompletion=NO;

animationMove.fillMode=kCAFillModeForwards;

animationMove.fromValue=[NSValue valueWithCGPoint:self.oldCoverCenter];

animationMove.toValue=[NSValue valueWithCGPoint:rootCenter];

returnanimationMove;

}

CABasicAnimation动画是应用在一个layer上面的。

注:

1,把一个image放在一个view的layer上来放大的时候,如果用UIView来做,图片不会太多的失真和闪烁的效果,但是用CABasicAnimation来做失真和闪烁现象会很严重,效果很不好。

2,做 动画的叠加效果 很简单,只要把各自的动画放在一起就可以了。请看这个效果:一本书边移动到屏幕中间,边放大,边打开封面的效果。

[imageLayer addAnimation:[self animationOpen]forKey:@"Open"];

[UIView beginAnimations:@"zoom out"context:nil];

[UIView setAnimationDuration:1.f];

[UIView setAnimationCurve:UIViewAnimationCurveEaseOut];

cover.transform=CGAffineTransformMakeScale(5.5,5.5);

cover.center=CGPointMake(629,384);

[UIView commitAnimations];

-(CAAnimation*)animationOpen

{

CABasicAnimation*animationOpen

=[CABasicAnimation animationWithKeyPath:@"transform.rotation.y"];

animationOpen.duration=1;

animationOpen.autoreverses=NO;

animationOpen.delegate=self;//然后执行真正地打开书的内容

animationOpen.removedOnCompletion=NO;

animationOpen.fillMode=kCAFillModeForwards;

animationOpen.fromValue=[NSNumber numberWithFloat:-M_PI/5];

animationOpen.toValue=[NSNumber numberWithFloat:-M_PI/1.5];

returnanimationOpen;

}

你可能感兴趣的:(看到一篇文章讲ios的动画,UIViewAnimation动画与CATransition类动画)