需要在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]
;
[self.navigationController pushViewController:xq animated:YES];