iOS 动画 —— transform

2018-12-02  本文已影响0人  Shorebloom_59f6

参考博客

@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

参考博客

上一篇 下一篇

猜你喜欢

热点阅读