天天看点

IOS自带的动画效果

需要在frameworks中添加QuartzCore.framework

在接口程序中加上头文件   #import <QuartzCore/QuartzCore.h>

/*好多动画效果*/

    CATransition *transition = [CATransition animation];

    transition.duration = 1.0f;         /* 间隔时间*/

    transition.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]; /* 动画的开始与结束的快慢*/

    transition.type = @"rippleEffect"; /* 各种动画效果*/

//@"cube" @"moveIn" @"reveal" @"fade"(default) @"pageCurl" @"pageUnCurl" @"suckEffect" @"rippleEffect" @"oglFlip"@"cameraIrisHollowOpen"@"cameraIrisHollowClose"

    transition.subtype = kCATransitionFromRight;   /* 动画方向*/

    transition.delegate = self;

    [navigationController.view.layer /* 在想添加CA动画的VIEW的层上添加此代码*/addAnimation:transition forKey:nil];

//另外加一句,transition在申请时用的是+方法,所以不需要自己进行release ,在层上添加后不要认为retainCount已经+1,就还要release

//实际上CATransition类中还有一个属性是removedOnCompletion,是此动画执行完后会自动remove,默认值为true

CATransition的type属性

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

<strong>setType<span style="color:#339933">:</span>可以返回四种类型:</strong>  
kCATransitionFade淡出  
kCATransitionMoveIn覆盖原图  
kCATransitionPush推出  
kCATransitionReveal底部显出来  
<strong>setSubtype<span style="color:#339933">:</span>也可以有四种类型:</strong>  
kCATransitionFromRight;  
kCATransitionFromLeft<span style="color:#009900">(</span>默认值<span style="color:#009900">)</span>  
kCATransitionFromTop;  
kCATransitionFromBottom

animation.type=@"pageCurl";  
[c] view plaincopy
pageCurl   向上翻一页  
pageUnCurl 向下翻一页  
rippleEffect 滴水效果  
suckEffect 收缩效果,如一块布被抽走  
cube 立方体效果  
oglFlip 上下翻转效果      

示例

+(CATransition*)addCubeAnimationWithAnimationSubType:(NSString*)subType

{

    CATransition*animation=[CATransition animation];

    //设置动画效果

    [animation setType:@"oglFlip"];

    //设置动画方向

    [animation setSubtype:kCATransitionFromRight];

    //设置动画播放时间

    [animation setDuration:1.0f];

    //设置动画作用范围

    [animation setTimingFunction:[CAMediaTimingFunctionfunctionWithName:kCAMediaTimingFunctionEaseOut]];

    return animation;

}

    JX_XQViewController*xq=[[JX_XQViewControlleralloc]init];

    [self.navigationController.view.layer addAnimation:[AnimationTooladdCubeAnimationWithAnimationSubType:kCATransitionFromRight] forKey:nil]