UIView是iOS系統中界面元素的基礎, 所有的界面元素都是繼承自它.它本身完全由CoreAnimation來實作的.它真正的繪圖部分,是由一個CALayer類來管理.UIView本身更像一個CALayer的管理器,通路它的跟繪圖和坐标有關的相關屬性. iOS的畫面切換效果的API主要通過調用系統已定義的動畫效果實作,這些效果已基本包括開發的需求,如需更複雜的效果,可以使用CATransition來實作.
以下是基本的四種效果
kCATransitionPush 推入效果
kCATransitionMoveIn 移入效果
kCATransitionReveal 截開效果
kCATransitionFade 漸入漸出效果
以下API效果可以安全使用
cube 方塊
suckEffect 三角
rippleEffect 水波抖動
pageCurl 上翻頁
pageUnCurl 下翻頁
oglFlip 上下翻轉
cameraIrisHollowOpen 鏡頭快門開
cameraIrisHollowClose 鏡頭快門開
以下API效果請慎用
spewEffect 新版面在螢幕下方中間位置被釋放出來覆寫舊版面.
genieEffect 舊版面在螢幕左下方或右下方被吸走, 顯示出下面的新版面
unGenieEffect 新版面在螢幕左下方或右下方被釋放出來覆寫舊版面.
twist 版面以水準方向像龍卷風式轉出來.
tubey 版面垂直附有彈性的轉出來.
swirl 舊版面360度旋轉并淡出, 顯示出新版面.
charminUltra 舊版面淡出并顯示新版面.
zoomyIn 新版面由小放大走到前面, 舊版面放大由前面消失.
zoomyOut 新版面螢幕外面縮放出現, 舊版面縮小消失.
oglApplicationSuspend 像按”home” 按鈕的效果.
例如:
//獲得一個動畫對象
CATransition *animation = [CATransition animation];
//設定動畫時間
animation.duration = 1;
//設定動畫速率
animation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
//設定動畫類型
animation.type = @"pageCurl";
//設定動畫子類型
animation.subtype = kCATransitionFromTop;
//添加到layer層
UIView *myView = [self.view viewWithTag:2016];
[myView.layer addAnimation:animation forKey:@"animation"];
[myView exchangeSubviewAtIndex:0 withSubviewAtIndex:1];