UIView动画效果

来源:互联网 发布:通达oa即时通讯端口 编辑:程序博客网 时间:2024/05/30 05:24

UIView是iOS系统中界面元素的基础, 所有的界面元素都是继承自它.它本身完全由CoreAnimation来实现的.它真正的绘图部分,是由一个CALayer类来管理.UIView本身更像一个CALayer的管理器,访问它的跟绘图和坐标有关的相关属性. iOS的画面切换效果的API主要通过调用系统已定义的动画效果实现,这些效果已基本包括开发的需求,如需更复杂的效果,可以使用CATransition来实现.

以下是基本的四种效果
kCATransitionPush 推入效果
kCATransitionMoveIn 移入效果
kCATransitionReveal 截开效果
kCATransitionFade 渐入渐出效果

以下API效果可以安全使用
cube 方块
suckEffect 三角
rippleEffect 水波抖动
pageCurl 上翻页
pageUnCurl 下翻页
oglFlip 上下翻转
cameraIrisHollowOpen 镜头快门开
cameraIrisHollowClose 镜头快门开


以下API效果请慎用
spewEffect 新版面在屏幕下方中间位置被释放出来覆盖旧版面.
genieEffect 旧版面在屏幕左下方或右下方被吸走, 显示出下面的新版面
unGenieEffect 新版面在屏幕左下方或右下方被释放出来覆盖旧版面.
twist 版面以水平方向像龙卷风式转出来.
tubey 版面垂直附有弹性的转出来.
swirl 旧版面360度旋转并淡出, 显示出新版面.
charminUltra 旧版面淡出并显示新版面.
zoomyIn 新版面由小放大走到前面, 旧版面放大由前面消失.
zoomyOut 新版面屏幕外面缩放出现, 旧版面缩小消失.
oglApplicationSuspend 像按”home” 按钮的效果.

例如:

//获得一个动画对象  

    CATransition *animation = [CATransition animation];  

    //设置动画时间  

    animation.duration = 1;  

    //设置动画速率  

    animation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];  

      

    /* 

     animation.type = @"cube"             //立方体效果 

     animation.type = @"suckEffect"       //收缩效果,如一块布被抽走 

     animation.type = @"oglFlip"          //上下翻转效果 

     animation.type = @"rippleEffect"     //滴水效果 

     animation.type = @"pageCurl"         //向上翻一页 

     animation.type = @"pageUnCurl"       //向下翻一页 

     */  

    //设置动画类型  

    animation.type = @"pageCurl";  

      

    //设置动画子类型  

    animation.subtype = kCATransitionFromTop;  

      

      

    //添加到layer层  

    UIView *myView = [self.view viewWithTag:2016];  

      

    [myView.layer addAnimation:animation forKey:@"animation"];  

    [myView exchangeSubviewAtIndex:0 withSubviewAtIndex:1];  

0 0
原创粉丝点击