CATransform3DMakeRotation 说明

         之前有说到iphone中进行动画变换的三种方法,在第三种方法里提到了动画可以改变的一个属性transform。在UIView和CALAyer中都有这个属性,但是两者所表示的含义却是不同。UIView中的transform表示的是2D的矩阵,而CALayer中的确实3D矩阵,包含3D变换。

         在UIView里面的transform已经在SDK文档里面有详细的介绍,而且框架也提供了详细的变换方法。在3D的方式下大部分情况与2D相同,费解的是旋转变换。变换方法原型: CATransform3D  CATransform3DMakeRotation(CGFloat angle, CGFloat x, CGFloat y, CGFloat z); 第一个参数是旋转角度,后面三个参数形成一个围绕其旋转的向量,起点位置由UIView的center属性标识。
       在这里需要说明的是在3D变换的时候,如果是变换的向量和屏幕垂直,那么就会相当于2D的旋转变化。如果不是垂直的,系统会现将整个画面调整到与这个向量垂直(没有动画),再进行旋转。所以会形成一个跳跃,破坏动画的连贯。
     所以如果有这类变换的情况请尽量考虑动画的连贯,现将view动画变换到和向量垂直,然后进行旋转,最后再恢复和屏幕平行。

CATransform3DMakeRotation
CATransform3DMakeRotation 总是按最短路径来选择,当顺时针和逆时针的路径相同时,使用逆时针。若需要使其按顺时针旋转,用 CAKeyframeAnimation 并在在顺时针路径上增加几个关键点即可。
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值