- #import
<QuatzCore/QuartzCore.h> - CATransition
*myTransition=[CATransition animation];//创建CATransition - myTransition.duration=0.3;//持续时长0.3秒
- myTransition.timingFunction=UIViewAnimationCurveEase
InOut;//计时函数,从头到尾的流畅度 - 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 ];