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:kCATransitionFromRightforKey:nil]

    ;

    [self.navigationController pushViewController:xq animated:YES];


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