首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >旋转UIImageView围绕着anchorPoint

旋转UIImageView围绕着anchorPoint
EN

Stack Overflow用户
提问于 2013-09-01 13:03:29
回答 2查看 1.1K关注 0票数 1

我希望围绕锚点旋转多个UIImageView,并给它们一个小的旋转,这样就可以这样

&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

这是我的代码,我认为它应该工作,但磨损的事情发生了

代码语言:javascript
复制
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;
}

我认为他们都应该在同一方面与我增加角度3,如何实现这一点?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-09-01 13:16:01

这是因为CGAffineTransformMakeRotation()将弧度作为输入,而不是度。现在,您可以使用这样的宏轻松地将学位转换为弧度:

代码语言:javascript
复制
#define DEGREES_TO_RADIANS(angle) ((angle) / 180.0 * M_PI)

或者您可以使用更小的输入值。在弧度中,360度等于2*π~ 6.28,所以不要把你的数值设定为0-360,你应该假设0-2π。当你把这个值增加3的时候,你实际上是在把它增加不到180度,这就是为什么你看到了你是什么。

总之,尝试使用angel += 0.052539;。正如凯尔W.所指出的,您需要将angel从int更改为浮点数。

票数 1
EN

Stack Overflow用户

发布于 2013-09-01 13:22:36

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

将角度从int更改为float

代码语言:javascript
复制
float angel = 0; 

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

代码语言:javascript
复制
angel += 0.3;

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18558693

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档