1.

CoreGraphics框架中的CGAffineTransform类可用于设定UIView的transform属性,控制视图的缩放、旋转和平移操作:

transform我们一般称为形变属性,其本质是通过矩阵变化改变控件的大小、位置、角度等.

另称放射变换矩阵,可参照线性代数的矩阵实现方式0.0

这里附上的CGAffineTransform官方文档:

https://developer.apple.com/library/ios/documentation/GraphicsImaging/Reference/CGAffineTransform/index.html

总得来说,这个类中包含3张不同类型,分别使用如下3个方法创建数值;

1.CGAffineTransformMakeTranslation(CGFloat tx, CGFloat ty)(平移:设置平移量)

2.CGAffineTransformMakeScale(CGFloat sx, CGFloat sy)(缩放:设置缩放比例)仅通过设置缩放比例就可实现视图扑面而来和缩进频幕的效果。

3.CGAffineTransformMakeRotation(CGFloat angle)(旋转:设置旋转角度)

以上3个都是针对视图的原定最初位置的中心点为起始参照进行相应操作的,在操作结束之后可对设置量进行还原:

view.transform=CGAffineTransformIdentity;

另外还可以通过CGAffineTransformTranslate等方法对现有的transform进行进一步处理;

transform 是一种状态,并且只有一种状态

(1)CGAffineTransformMakeTranslation(<#CGFloat tx#>, <#CGFloat ty#>):只能变化一次,因为这种方式的变化始终是以最原始的状态值进行变化的,所以只能变化一次

例如:

UIButton *head = (UIButton *) [self.view viewWithTag:10];head.transform = CGAffineTransformMakeTranslation(0,-10);

(2)CGAffineTransformTranslate(CGAffineTransform t, <#CGFloat tx#>, <#CGFloat ty#>):能够多次变化,每次变化都是以上一次的状态(CGAffineTransform t)进行的变化,所以可以多次变化

head.transform = CGAffineTransformTranslate(head.transform, 0, -10);

(3) CGAffineTransformIdentity:清空所有的设置的transform(一般和动画配合使用,只能使用于transfofrm设置的画面)

UIButton *head = (UIButton *) [self.view viewWithTag:10];head.transform = CGAffineTransformIdentity;

(4)CGAffineTransformMakeScale( CGFloat  sx,  CGFloat  sy) (缩放:设置缩放比例)仅通过设置缩放比例就可实现视图扑面而来和缩进频幕的效果。

UIButton *head = [self.view viewWithTag:10];head.transform = CGAffineTransformScale(head.transform,1.5,1.5);

(5) CGAffineTransformMakeRotation( CGFloat  angle) (旋转:设置旋转角度)

UIButton *head =  [self.view viewWithTag:10];head.transform = CGAffineTransformMakeRotation(M_PI_2);

转载于:https://www.cnblogs.com/pengsi/p/5329295.html

CGAffineTransform的使用大概:相关推荐

  1. iOS方法类:CGAffineTransform

    iOS方法类:CGAffineTransform的使用大概 CoreGraphics框架中的CGAffineTransform类可用于设定UIView的transform属性,控制视图的缩放.旋转和平 ...

  2. CGAffineTransform与CATransform3D

    CGAffineTransform 1.CG的前缀告诉我们,CGAffineTransform类型属于Core Graphics框架,Core Graphics实际上是一个严格意义上的2D绘图API, ...

  3. 如何面对“大概什么时候能完成?”

    你在听着经理.上级或是公司内部的某类用户滔滔不绝的给你讲需求,这里面常常能听到"最好能加上--","我希望--",你一边听着,一边心里盘算着这些需求背后需要怎样 ...

  4. Redis存储总是心里没底?你大概漏了这些数据结构原理

    上一篇文章<Redis存储总用String?你大概错过了更优的使用方法>我们了解了Redis的数据类型特点与适用场景,本期内容则会着重讲讲Redis内存数据结构与编码,弄清Redis内部到 ...

  5. 泰语7个元音变形_大概是最全的音标总结--元音部分

    [音标,收藏这篇就够了,码字不易,记得要先点赞哦-] 由于文章太长,且附有很多图片,怕大家不好加载,所以把元音和辅音分开放了 很多人在问怎么练口语,怎么说得地道,于是就去看美剧,去英语角练习,去和外教 ...

  6. python培训班时间 费用-深圳python培训班大概多少费用

    深圳python培训班大概多少费用 来源:教育联展网 编辑:粉色de皮卡丘 发布时间:2019-08-20 人工智能Python培训 到北大青鸟学Python 技能提升高薪就业 快速咨询 学习Pyth ...

  7. python开发工资多少-三年 python web 开发,在深圳工资大概时多少?

    你说,有三年python web开发经验,在现公司负责整个web架构,前后端分离,项目管理,服务部署,分布式集群,前端也可以写,想知道在深圳工资大概是多少.刚才上网帮你查了下,薪资水平大概是这样的(请 ...

  8. python报班大概多少钱-python培训班价格大概多少?

    python培训班价格大概多少?Python自诞以来就备受关注,在近几年人工智能发展的推动下,python俨然已经有了超越其他编程语言对的趋势,同时也迎来的python学习热潮.那么,python培训 ...

  9. vue1与vue2的路由 以及vue2项目大概了解

    vue1的路由 1.设置根组件  Vue.extend() 2.设置局部组件  Vue.extend({template:"/home"}) 3.实例化路由   var route ...

最新文章

  1. 公司这套架构统一处理 try...catch 这么香,求求你不要再满屏写了,再发现扣绩效!...
  2. ubuntu16 kubernetes1.6安装(六、node节点部署)
  3. 【Flask】Jinja2之模板继承
  4. memset()函数用法
  5. C#,pdf文件转换成图片文件。
  6. ERROR ITMS-90022,90023,问题已解决
  7. Fiddler-半自动构造少量数据
  8. 在表达式 T(n) = 2T(n/2) + O(1) 与 T(1) = O(1) 中,T(n) 的时间复杂度为多少?
  9. 【paper and code】StarGAN
  10. linux中断处理体系结构
  11. 微信宣布:被禁 8 年的限制解除了!
  12. ffmpeg多路同时推流
  13. 3种内网穿透方式连接家用宽带服务器
  14. 《王亡於江上》之周昭王姬瑕
  15. ISCOM6800瑞斯康达使用方法
  16. windows使用密钥登录linux服务器
  17. SAR变化检测的性能指标(kappa系数)——简化版
  18. 实验四 JavaScript的使用(学习打卡Day 2)
  19. linux文件操作chown,chmod,chgrp命令的使用
  20. 此战成硕,我成功上岸西南交通大学了~~~

热门文章

  1. python菜鸟excel教程-Python操作Excel的Xlwings教程(一)
  2. python自动测试p-python自动化测试_8
  3. python图片识别-用10行Python代码进行图像识别
  4. python读文件操作-python文件操作-读写删除复制总结
  5. python绘制简单图形-python绘制数学图形(堪比matlab)
  6. python面试常见问题-10个Python面试常问的问题
  7. 没有c语言基础可以学python吗-必须要有C语言基础才能学python吗
  8. python有道api-python 调用有道api接口的方法
  9. python能写软件吗-用什么软件写python
  10. python3最新稳定版本-Python 3.9.0 稳定版发布