CATransition是转场时候使用的。你可以用它来绘制一个转场时候的动画。
使用场景有很多,如在图片间的切换时候使用。
CATransition *transition = [CATransition animation];
// duration 间隔时间
transition.duration = 1.2;
transition.delegate = self;
//是否重复
transition.repeatCount = HUGE_VALF;
transition.removedOnCompletion = NO;
transition.fillMode = kCAFillModeForwards;
/*
动画过渡类型
转场动画的类型(NSString *type)
* kCATransitionFade : 交叉淡化过渡
* kCATransitionPush : 新视图把旧视图推出去
* kCATransitionMoveIn: 新视图移到旧视图上面
* kCATransitionReveal: 将旧视图移开,显示下面的新视图
下边的是String,如@"cube"
* cube : 立方体翻滚效果
* oglFlip : 上下左右翻转效果
* suckEffect : 收缩效果,如一块布被抽走
* rippleEffect: 水滴效果
* pageCurl : 向上翻页效果
* pageUnCurl : 向下翻页效果
* cameraIrisHollowOpen : 相机镜头打开效果
* cameraIrisHollowClos : 相机镜头关闭效果
*/
transition.type = kCATransitionReveal;
/*
动画过渡方向:从某个方向开始
kCATransitionFromRight
kCATransitionFromLeft
kCATransitionFromTop
kCATransitionFromBottom
*/
transition.subtype = kCATransitionFromBottom;
//动画速度变化
transition.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
//把动画添加都layer层
[self.img2.layer addAnimation:transition forKey:nil];
//当点击切换图片的按钮时,img2中的图片将会被切换,转场效果将会出现,文中省略了按钮的创建以及img2的创建。
有些时候你还可以设置以下两个属性:
- startProgress:动画起点(在整体动画的百分比)
- endProgress:动画终点(在整体动画的百分比)