轉載 http://blog.163.com/wangy_0223/blog/static/45014661201222694654895/
需要在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" transition.subtype = kCATransitionFromRight; /* 動畫方向*/ transition.delegate = self; [navigationController.view.layer /* 在想添加CA動畫的VIEW的層上添加此代碼*/addAnimation:transition forKey:nil];//另外加一句,transition在申請時用的是+方法,所以不需要自己進行release ,在層上添加後不要認為retainCount已經+1,就還要release//實際上CATransition類中還有一個屬性是removedOnCompletion,是此動畫執行完後會自動remove,預設值為true實現iphone漂亮的動畫效果主要有兩種方法,一種是UIView層面的,一種是使用CATransition進行更低層次的控制,第一種是UIView,UIView方式可能在低層也是使用CATransition進行了封裝,它只能用於一些簡單的、常用的效果展現,這裡寫一個常用的範例程式碼,供大家參考。[UIView beginAnimations:@"Curl"context:nil];//動畫開始[UIView setAnimationDuration:0.75];[UIView setAnimationDelegate:self];[UIView setAnimationTransition:UIViewAnimationTransitionCurlUp forView:myview cache:YES];[myview removeFromSuperview];[UIView commitAnimations];第二種方式相對複雜一些,但如果更好的進行控制,還是使用這種方法吧,基本使用方法可以看一下如下例子:CATransition *animation = [CATransition animation];[animation setDuration:1.25f];[animation setTimingFunction:[CAMediaTimingFunctionfunctionWithName:kCAMediaTimingFunctionEaseIn]];[animation setType:kCATransitionReveal];[animation setSubtype: kCATransitionFromBottom];[self.view.layer addAnimation:animation forKey:@"Reveal"];這裡使用了setType與setSubtype組合,這使用個比較保險,因為他的參數就是官方API裡定義的,他們的參數說明可以參考如下:setType:可以返回四種類型:kCATransitionFade淡出kCATransitionMoveIn覆蓋原圖kCATransitionPush推出kCATransitionReveal底部顯出來setSubtype:也可以有四種類型:kCATransitionFromRight;kCATransitionFromLeft(預設值)kCATransitionFromTop;kCATransitionFromBottom還有一種設定動畫類型的方法,不用setSubtype,只用setType[animation setType:@"suckEffect"];這裡的suckEffect就是效果名稱,可以用的效果主要有:pageCurl 向上翻一頁pageUnCurl 向下翻一頁rippleEffect 滴水效果suckEffect 收縮效果,如一塊布被抽走cube 立方體效果oglFlip 上下翻轉效果