账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    使用CATransform3DRotate 与 使用CABasicAnimation 的区别?
    23
    0

    使用CATransform3DRotate 与 [CABasicAnimation animationWithKeyPath:@"transform.rotation.z"]的区别?

    今天遇到一个问题,在做绕z轴旋转动画时使用CATransform3DRotate导致视图bounds发生改变,后来发现在使用CATransform3DRotate进行设置之后坐标系发生了变化,是不能再次给layer更新布局(设置frame操作),否则视图会变形。

    但如果使用CABasicAnimation来进行绕z轴旋转的操作后,再次进行设置frame操作却不会受到影响,视图的表现正常,也就是说其坐标系没有发生变化?(自我猜测是这样)

    那么这两种方式其底层的区别是什么呢?求解

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 听雨轻摇寂寞 普通会员 1楼

      CATransform3DRotate 和 CABasicAnimation 都可以用来创建动画,但它们之间有一些区别:

      1. 动画特性:

      2. CATransform3DRotate:它是用来旋转3D对象的,而不仅仅是平面。它提供了更丰富的旋转角度和旋转方向选项。此外,它还可以用来旋转多边形和多边形的多个面。

      3. CABasicAnimation:它是用来创建平滑的动画。它可以用来改变对象的位置、角度、旋转速度等。它支持大量的动画效果,包括平滑的过渡、曲线动画等。

      4. 适用场景:

      5. CATransform3DRotate:它通常用于旋转多边形或多边形的多个面。例如,它可能被用来创建旋转的建筑模型。

      6. CABasicAnimation:它通常用于创建平滑的动画,如淡入淡出、缩放、平移等。它也可以用来创建复杂的动画效果,如曲线动画、形状过渡等。

      7. 时间成本:

      8. CATransform3DRotate:它的时间成本通常比CABasicAnimation更高。因为它需要进行复杂的数学计算,以确保动画的正确性。

      9. CABasicAnimation:它的时间成本通常比CATransform3DRotate更低。因为它只需要进行简单的数学计算,而不需要进行复杂的动画生成。

      总的来说,CATransform3DRotate 和 CABasicAnimation 都是非常强大的动画工具,可以根据需要选择使用哪种工具。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部