UIVIEW 的旋转与缩放以及同时应用两种效果(一)

来源:互联网 发布:json格式验证工具 编辑:程序博客网 时间:2024/05/22 01:44

转载自:http://www.travelchu.com/2014/08/13/uiview-%E7%9A%84%E6%97%8B%E8%BD%AC%E4%B8%8E%E7%BC%A9%E6%94%BE%E4%BB%A5%E5%8F%8A%E5%90%8C%E6%97%B6%E5%BA%94%E7%94%A8%E4%B8%A4%E7%A7%8D%E6%95%88%E6%9E%9C%EF%BC%88%E4%B8%80%EF%BC%89/


对于UIView的缩放,最简单的方法可以是修改view的frame,这里不做讨论。

我们来讨论一下 CGAffineTransform在UIView的缩放与旋转上的应用。以下假设view为UIView的一个实例。
1. UIView的缩放
CGAffineTransform 提供了两个方法用于缩放,分别是CGAffineTransform CGAffineTransformMakeScale(CGFloat sx, CGFloat sy)CGAffineTransform CGAffineTransformScale(CGAffineTransform t,CGFloat sx, CGFloat sy)

1.1 CGAffineTransformMakeScale(CGFloat sx, CGFloat sy)
这个方法可以方便的对view的长和宽进行缩放,不改变view的中心点。注意!中心点不变指的是物理位置不变,不是坐标,因为坐标系此时已经发生改变。
例如:对view进行0.5等比缩放:

 

1.2 CGAffineTransformScale(CGAffineTransform t,CGFloat sx, CGFloat sy)
这个方法同样是view的长和宽进行缩放,效果类似CGAffineTransformMakeScale(CGFloat sx, CGFloat sy)不同的是这个方法可以叠加其他CGAffineTransform效果(比如旋转)
例如:对view进行0.5等比缩放:

 

2. UIView的旋转
CGAffineTransform 提供了两个方法用于旋转,分别是CGAffineTransform CGAffineTransformMakeRotation(CGFloat angle)CGAffineTransform CGAffineTransformRotate(CGAffineTransform t, CGFloat angle)

2.1 CGAffineTransformMakeRotation(CGFloat angle)
这个方法可以方便的对view进行旋转,不改变view的中心点。注意!中心点不变指的是物理位置不变,不是坐标,因为坐标系此时已经发生改变。
例如:对view进行45度旋转:

 

2.2 CGAffineTransformRotate(CGAffineTransform t, CGFloat angle)
这个方法同样是对view进行旋转,效果类似CGAffineTransformMakeRotation(CGFloat angle)不同的是这个方法可以叠加其他CGAffineTransform效果(比如缩放)
例如:对view进行45度旋转:

0 0
原创粉丝点击