最近在研究如何更炫的显示图片,所以摸索了几种比较好的解决办法,但是这种更炫的解决办法可能会导致你的程序不能被 apple store 审核通过的分享,慎用!!!!!但是如果你的 app 是要通过企业签发布的会则不会受到太大的影响.
废话不多说,直接进入主题,咱们先来分析一下苹果官方给出的几种效果,以及一些属性的解释:
CATransition 是CAAnimation 的子类,他们是继承的关系(CATransition : CAAnimation),这么说可能会有些抽象,大家可以想一下UINavigationController 就是通过CATransition 实现了将控制器的视图推入屏幕的效果.
属性解析:
type:-------------动画过度类型
subtype:----------动画过渡方向
startProgress:----动画起点(在整体动画的百分比)
endProgress:------动画终点(在整体动画的百分比)
动画过渡类型:
官方提供 API"
(fade) kCATransitionFade----------交叉淡化过渡(不支持过渡方向,也就是说设置不设置 subtype 并没有什么卵用)
(moveIn) kCATransitionMoveIn---新视图移到旧视图上面
(push) kCATransitionPush---------新视图把旧视图推出去
(reveal) kCATransitionReveal -----旧视图移开,显示下面的新视图
私有 API:
cube -------------------------立方体翻转效果
oglFlip -----------------------上下左右翻转效果
suckEffect -------------------收缩效果.如一块布被抽走(不支持过渡方向)
rippleEffect ------------------滴水效果(不支持过渡方向)
pageCurl ---------------------向上翻页效果
pageUnCurl ------------------向下翻页效果
rotate -------------------------旋转(不支持过渡方向,可以在 subtype 设置旋转角度)
cameraIrisHollowOpen ------相机镜头打开效果(不支持过渡方向)
cameraIrisHollowClose ------相机镜头关闭效果(不支持过渡方向)
动画过渡方向:
kCATransitionFromTop ----------从上部滑入
kCATransitionFromBottom ------从下部滑入
kCATransitionFromLeft ----------从左侧滑入
kCATransitionFromRight --------从右侧滑入
以下是示例程序的核心代码:
// 1. 创建转场动画 CATransition *transition = [CATransition animation]; // 2. 设置转场动画形式 transition.type = kCATransitionMoveIn; // 3. 设置转场动画附形式 transition.subtype = kCATransitionFromBottom; // 4. 执行动画 [self.bgView.layer addAnimation:transition forKey:nil];
另外如果设置 type 为 "rotate"的时候可以设置旋转角度
CATransition *transition = [CATransition animation]; transition.type = @"rotate"; transition.subtype = @"90ccw";
旋转角度设置:
90cw ----逆时针旋转 90°
90ccw ---顺时针旋转 90°
180cw ---逆时针旋转 180°
180ccw --顺时针旋转 180°
著作权声明:本文为作者原创,欢迎转载分享。请尊重作者劳动,转载时保留该声明和作者博客链接,谢谢!