transfrom是利用线性代数来存放一个控件(或许是图片)的具体信息.(由于可以通过transfrom直接操作控件.所以肯定直接或者间接的存储着点的信息和控件的大小等信息)
1.移动.左移右移或者上移下移:
CGAffineTransformMakeTranslation(X偏移量, Y偏移量);
CGAffineTransformTranslate(在某个transform的基础上-一般为自身, X偏移量, Y偏移量);
2.改变大小(形变):
CGAffineTransformMakeScale(宽缩放的倍数, 高缩放的倍数);
CGAffineTransformScale(在某个transform的基础上-一般为自身, 宽缩放的倍数, 高缩放的倍数);
3.使用transfrom进行旋转
CGAffineTransformMakeRotation(旋转的弧度);
CGAffineTransformRotate(在某个transform的基础上-一般为自身, 旋转的弧度);
这里旋转使用的弧度是用PI来算的.正数就是正时针旋转.负数就是逆时针旋转(记不住就直接打个PI到参数里面然后加一个下划线).
进过上面的更改.图片肯定变了样.如果我们想恢复原样.不用搞得非常复杂,或者是投机取消.取消掉这个控件然后在初始位置增加一个上去.
其实苹果都为咱们封装好了.只用直接使用CGAffineTransformIdentity这个方法.一切的改动都会恢复原状.
不过我建议大家不要用transfrom同时控制旋转与移动.因为.上一篇介绍center.frame.bounds的文章里面提到了.iOS系统中每一个插件(比如一个按钮).都是一个矩形.虽说你可以通过各种手段来切割图形.比如让用户感觉是圆形的.但其实还是一个矩形的.想象一下.如果旋转了.看起来不是矩形.但是其实还是一个矩形.最左边的边就是最左边的点做垂直线下去.其他的边以此类推.如果移动成一个矩形那还是没问题.就怕可见的地方不是矩形,然后移动(平移).就不是"平移"了.(因为转动会改变这个图像的frame).