轉場動畫是一種動畫對象,可以被附著在已經存在的視圖上。
需導入Quartz Qore框架
- #import <QuatzCore/CAAnimation.h>
- CATransition *myTransition=[CATransition animation];//創建CATransition
- myTransition.duration=0.3;//持續時長0.3秒
- myTransition.timingFunction=UIViewAnimationCurveEaseInOut;//計時函數,從頭到尾的流暢度
- myTransition.type=kCATransionPush;//動畫類型
- myTransition.subtype=kCATransitionFromLeft;//子類型
- //要令一個轉場生效,組要將動畫添加到將要變為動畫視圖所附著的圖層。例如在兩個視圖控制器之間進行轉場,那就將動畫添加到窗口的圖層中:
- [[self.view.superview layer]addAnimation:myTransition forKey:nil ];
- //如果是將控制器內的子視圖轉場到另一個子視圖,就將動畫加入到視圖控制器的圖層。還有一種選擇,用視圖控制器內部的視圖作為替代,將你的子視圖作為主視圖的子圖層:
- [ self.view.layer addAnimation:myTransition forKey:nil ];
- [ self.view addSubView:newView ];
- [oldView removeFromSuperview];
- //如果你使用的是導航控制器,可以將動畫加到導航控制器的視圖圖層中。
- [ navigationController.view.layer addAnimation:myTransition forKey:nil ];