CATransition 的初級應用及type屬性

需要在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



CATransition的type屬性

這裏使用了setType與setSubtype組合,這使用個比較保險,因爲他的參數就是官方API裏定義的,他們的參數說明可以參考如下:

setType:可以返回四種類型:
kCATransitionFade淡出
kCATransitionMoveIn覆蓋原圖
kCATransitionPush推出
kCATransitionReveal底部顯出來
setSubtype:也可以有四種類型:
kCATransitionFromRight;
kCATransitionFromLeft(默認值)
kCATransitionFromTop;
kCATransitionFromBottom

還有一種設置動畫類型的方法,不用setSubtype,只用setType

animation.type=@"pageCurl";
pageCurl   向上翻一頁
pageUnCurl 向下翻一頁
rippleEffect 滴水效果
suckEffect 收縮效果,如一塊布被抽走
cube 立方體效果
oglFlip 上下翻轉效果


   示例

CATransition *animation=[CATransition animation];
 animation.delegate=self;
 animation.duration=1.0f;

animation.timingFunction=UIViewAnimationCurveEaseInOut;

animation.type=kCATransitionMoveIn;
animation.subtype=kCATransitionFromTop;
 [myView.layer addAnimation:animation forKey:@"move in"];



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章