iOS中的图片旋转

这是我的第一个项目,虽说是接手别人的,但是也很激动的说.

在项目中,需要改需求,要计算下载速度,其中用到了使用表盘的形式展示当前网速,里面当然就用到了图片的旋转.

代码如下:

- (void)viewDidLoad {

[super viewDidLoad];

//使用NSTimer控制旋转

timer = [NSTimer scheduledTimerWithTimeInterval:0.01 target:self selector:@selector(transform) userInfo:nil repeats:YES];

[self addViews];

}

- (void)addViews{

networkSpeedometer = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"pan"]];

networkSpeedometer.frame = CGRectMake(0, WIDTH(125), WIDTH(320), WIDTH(156));

[self.view addSubview:networkSpeedometer];

networkPoint = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"zhen_cz"]];

//指定了旋转的部位,也就是旋转的支点

networkPoint.layer.anchorPoint = CGPointMake(WIDTH(122 - 7)/ WIDTH(122), 0.5);

networkPoint.frame = CGRectMake(WIDTH(45), WIDTH(156 - 33), WIDTH(122), WIDTH(14));

[networkSpeedometer addSubview:networkPoint];

}

//旋转的方法

- (void)transform{

angle = angle + 0.01;//angle旋转的角度,随着NSTimer增大

if (angle >= M_PI_2) {

//当angle增加到M_PI_2也就是90°的时候,让NSTimer停止

timer.fireDate = [NSDate distantFuture];

[timer invalidate];

return;

}

networkPoint.transform = CGAffineTransformMakeRotation(angle);

}

效果图:


iOS中的图片旋转_第1张图片

注意:其中定义的宏WIDTH 为#define WIDTH(i) (1.0*[UIScreen mainScreen].bounds.size.width/320*(i))  这个定义的宏,可以很方便的让你设置的frame可以适应各个iPhone端

你可能感兴趣的:(iOS中的图片旋转)