围绕一个anchorPoint旋转UIImageView

时间:2013-09-01 13:03:30

标签: ios

我想围绕锚点旋转多个UIImageView并给它们一点旋转,这样就可以这样了

https://www.google.com.eg/search?q=cards.&um=1&ie=UTF-8&hl=en&tbm=isch&source=og&sa=N&tab=wi&ei=zzkjUoXFL5GWswbrrIGgBw&biw=1024&bih=615&sei=0TkjUu2wHcmntAbC54Bo#facrc=&imgdii=&imgrc=BdArJtkexKgyQM%3A%3BnKsOa4ZSkOOFcM%3Bhttp%253A%252F%252Fdailywicca.com%252Fwp-content%252Fuploads%252F2011%252F10%252Fplaying-cards1.jpg%3Bhttp%253A%252F%252Fdailywicca.com%252F2011%252F10%252F08%252Freading-with-a-plain-deck-of-cards%252F%3B1920%3B1200

这是我的代码,我认为它应该有效,但是发生了事情

int angel=0;

for (int i=0; i<6; i++)
{
    UIImage *image=[UIImage imageNamed:@"images.jpeg"];
    UIImageView *imageView=[[UIImageView alloc]initWithImage:image];
    [self.view addSubview:imageView];
    [imageView setFrame:CGRectMake(0, 0, 80, 80)];
    [imageView setCenter:CGPointMake(150, 150)];
    imageView.layer.anchorPoint = CGPointMake(1.0, 1.0);
    imageView.transform = CGAffineTransformMakeRotation(angel);

    angel+=3;
}

enter image description here

我认为他们都应该与iam一起增加角度3,如何实现这一目标?

2 个答案:

答案 0 :(得分:1)

这是因为CGAffineTransformMakeRotation()将弧度视为输入而非度数。现在,您可以使用像这样的宏轻松地将度数转换为弧度:

#define DEGREES_TO_RADIANS(angle) ((angle) / 180.0 * M_PI)

或者您可以使用较小的输入值。在弧度中,360度等于2 *π~6.28,因此,假设0-360,您应该假定为0-2π而不是测量您的值。当你将值增加3时,你实际上将它增加了不到180度,这就是为什么你会看到你的样子。

总体而言,请尝试使用angel += 0.052539;。你需要将angel从int更改为float,正如@Kyle W.指出的那样

答案 1 :(得分:1)

我不完全确定我理解你的问题,但试试这个:

将角度从int更改为float

float angel = 0; 

更改循环每次迭代的增量。

angel += 0.3;

另外,我认为你的意思是“角度”而不是“天使”;)