Transform简单使用

一 分类

平移:

CGAffineTransformMakeTranslation(10, 0)  : 在初始位置的基础上进行平移

CGAffineTransformTranslate(self.redView.transform, 10, 0)  多次生效, 以当前状态为基础

旋转:

CGAffineTransformMakeRotation:angle  : 是弧度

M_PI_4 : 45°

如果传值为负 : 逆时针进行旋转

CGAffineTransformMakeRotation(M_PI_4)

CGAffineTransformRotate(self.redView.transform, -M_PI_4)

缩放:

CGAffineTransformMakeScale(1.2, 1.2) : x轴上放大1.2倍, y 轴上放大1.2 倍

如果想要缩小, 就传递小于1的值, 如果传递为负值, 这个view 就疯了

CGAffineTransformMakeScale(1.2, 1.2)

CGAffineTransformScale(self.redView.transform, 0.8, 0.5)

// 当view 的transform 发生变化的时候, 会影响到 frame , 所以, 如果做动画, 就用bounds 和 center 来代替

animatable. do not use frame if view is transformed since it will not correctly reflect the actual location of the view. use bounds + center instead


二 代码案列

//    (一) 平移

- (IBAction)translate:(id)sender {

/**

CGAffineTransformMakeTranslation(10, 0) :在x轴上,向右平移10的距离,在y轴上不动,只能生效一次:相对于初始位置,平移10的距离,当再次平移的时候,如果距离初始位置有10的间距,则不生效

// self.redView.transform:当前redView transform的值

CGAffineTransformTranslate(self.redView.transform, 10, 0) :在现在位置的基础上进行平移

*/

//self.redView.transform = CGAffineTransformMakeTranslation(10, 10);

self.redView.transform=CGAffineTransformTranslate(self.redView.transform,10,0);

}

//  (二)旋转

- (IBAction)rotate:(id)sender {

/**

CGAffineTransformMakeRotation(<#CGFloat angle#>):是弧度

M_PI_4 : 45°

如果传值为负:逆时针进行旋转

*/

//self.redView.transform = CGAffineTransformMakeRotation(M_PI_4);

NSLog(@"旋转前: %@",NSStringFromCGRect(self.redView.bounds));

self.redView.transform=CGAffineTransformRotate(self.redView.transform, -M_PI_4);

NSLog(@"旋转后: %@",NSStringFromCGRect(self.redView.bounds));

}

//    (三)放大

- (IBAction)scale:(id)sender {

/**

CGAffineTransformMakeScale(1.2, 1.2) : x轴上放大1.2倍, y轴上放大1.2倍

如果想要缩小,就传递小于1的值,如果传递为负值,这个view就疯了

*/

//self.redView.transform = CGAffineTransformMakeScale(1.2, 1.2);

self.redView.transform=CGAffineTransformScale(self.redView.transform,0.8,0.5);

}

//     (四)恢复

- (IBAction)reset:(id)sender {

//清空所有的transfrom属性

self.redView.transform=CGAffineTransformIdentity;

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容