Transform简单使用

2016-07-09  本文已影响915人  dicesc

一 分类

平移:

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;

}

上一篇下一篇

猜你喜欢

热点阅读