美文网首页
iOS 动画 —— transform

iOS 动画 —— transform

作者: Shorebloom_59f6 | 来源:发表于2018-12-02 11:27 被阅读0次

    参考博客

    @property(nonatomic) CGAffineTransform transform;  // view 的属性
    @property CATransform3D transform; // layer 的属性
    
    • view.transform:一般是View的旋转,拉伸移动等属性,是二维的,通常使用都是前缀CGAffineTransform的类。
    • view.layer.transform:可以在3D模式下面的变化,通常使用的都是前缀为CATransform3D的类。

    Tip: 其实两者的区别就是二维和三维的区别

    一. CGAffineTransform

    1. 简介

    CGAffineTransform是一个用于处理形变的类,其可以改变控件的平移、缩放、旋转等,其坐标系统采用的是二维坐标系,即向右为x轴正方向,向下为y轴正方向

    2. 方法介绍

    1. 以初始位置为基准,在x轴方向上平移x单位,在y轴方向上平移y单位
    CGAffineTransformMakeTranslation(CGFloat tx, CGFloat ty)
    
    1. 以初始位置为基准,在x轴方向上缩放x倍,在y轴方向上缩放y倍
    CGAffineTransformMakeScale(CGFloat sx, CGFloat sy)
    
    1. 实现以初始位置为基准,将坐标系统逆时针旋转angle弧度(弧度=π/180×角度,M_PI弧度代表180角度)
    CGAffineTransformMakeRotation(CGFloat angle)
    

    注:

    • 当angle为值时,时针旋转坐标系统,反之时针旋转坐标系统
    • 逆时针旋转坐标系统的表现形式为对控件进行顺时针旋转
    1. 以一个已经存在的形变(t)为基准,在x轴方向上平移x单位,在y轴方向上平移y单位
    CGAffineTransformTranslate(CGAffineTransform t,CGFloat tx, CGFloat ty)
    
    1. 实现以一个已经存在的形变为基准,在x轴方向上缩放x倍,在y轴方向上缩放y倍
    CGAffineTransformScale(CGAffineTransform t, CGFloat sx, CGFloat sy)
    
    1. 以一个已经存在的形变为基准,将坐标系统逆时针旋转angle弧度(弧度=π/180×角度,M_PI弧度代表180角度)
    CGAffineTransformRotate(CGAffineTransform t,CGFloat angle)
    

    :transform属性默认值为CGAffineTransformIdentity,可以在形变之后设置该值以还原到最初状态

    二、 CATransform3D

    参考博客

    相关文章

      网友评论

          本文标题:iOS 动画 —— transform

          本文链接:https://www.haomeiwen.com/subject/fcnanftx.html