CATransition 类
CATransition实现了layer的过渡动画。也就是说是控制layer的过渡动画类。
我们可以通过CATransition来实现我们特定的过渡动画。也可以通过一个自定义的CIFilter实体来实现过渡动画。
CATransition相关属性
endProgress
@property float endProgress
定义过渡的结束点
结束点的值必须大于或者等于开始点。
默认值为1.0。
startProgress
@property float startProgress
定义过度的开始点
开始点的值必须小于或者等于结束点。
默认值为0.0。
这两个属性是float类型的。
可以控制动画进行的过程,可以让动画停留在某个动画点上,值在0.0到1.0之间。endProgress要大于等于startProgress。
比如:立方体转,可以设置endProgress= 0.5,让动画停留在整个动画的特定位置(停止在旋转一般的状态)。
filter
@property(retain) CIFilter *filter
为动画添加一个可选的滤镜。
如果指定,那么指定的filter必须同时支持x和y,否则该filter将不起作用。
默认值为nil。
如果设置了filter,那么,为layer设置的type和subtype属性将被忽略。
该属性只在iOS 5.0以及以后版本被支持。
subtype
@property(copy) NSString *subtype
指定预定义的过渡方向。
默认为nil。
如果指定了filter,那么该属性无效。
预定义的过渡方向为:
NSString * const kCATransitionFromRight;
NSString * const kCATransitionFromLeft;
NSString * const kCATransitionFromTop;
NSString * const kCATransitionFromBottom;
分别表示:过渡从右边、左边、顶部、底部 开始。
type
@property(copy) NSString *type
指定预定义的过渡效果。
默认为kCATransitionFade
如果指定了filter,那么该属性无效。
预定义的过渡效果:
NSString * const kCATransitionFade;
NSString * const kCATransitionMoveIn;
NSString * const kCATransitionPush;
NSString * const kCATransitionReveal;
分别表示:淡出、覆盖原图、推出、从底部显示。
注意:
还有很多私有API效果,使用的时候要小心,可能会导致app审核不被通过(悲剧啊,为啥有却不让用啊!好东西不应该被束之高阁!):
fade //交叉淡化过渡(不支持过渡方向)
push //新视图把旧视图推出去
moveIn //新视图移到旧视图上面
reveal //将旧视图移开,显示下面的新视图
cube //立方体翻滚效果
oglFlip //上下左右翻转效果
suckEffect //收缩效果,如一块布被抽走(不支持过渡方向)
rippleEffect //滴水效果(不支持过渡方向)
pageCurl //向上翻页效果
pageUnCurl //向下翻页效果
cameraIrisHollowOpen //相机镜头打开效果(不支持过渡方向)
cameraIrisHollowClose //相机镜头关上效果(不支持过渡方向)
http://www.cocoachina.com/ios/20141022/10005.html