首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >旋转到特定角度不起作用

旋转到特定角度不起作用
EN

Stack Overflow用户
提问于 2013-05-03 13:00:27
回答 5查看 96关注 0票数 0

我有一个卡通脸的图像来旋转它,就像从左到右摇头一样(就像我们听到音乐时所做的那样),持续一段特定的时间,比如5-7秒。因此,我正在做以下工作:

代码语言:javascript
运行
复制
-(void)rotation{

CABasicAnimation *rotate = [CABasicAnimation animationWithKeyPath:@"transform.rotation.z"];
[rotate setFromValue:[NSNumber numberWithFloat:0.0]];
[rotate setToValue:[NSNumber numberWithFloat:45]];
[rotate setDuration:5.0];
[rotate setAutoreverses:YES];
[rotate setTimingFunction:[CAMediaTimingFunction functionWithName: kCAMediaTimingFunctionEaseInEaseOut]];

[[faceImage layer] addAnimation:rotate forKey:@"dangleFaceImage"];

}

但是图像像一个球一样旋转!我认为我的代码一点也不正确。我怎么才能做这个轮换呢?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2013-05-03 13:04:22

您将在设置图层的锚点方面进行工作。将包含面的图层的锚点放置在较低的中间底部。然后旋转将从这一点开始。然后,看起来头部从颈部开始倾斜。

票数 -1
EN

Stack Overflow用户

发布于 2013-05-03 13:03:59

旋转以弧度为单位,而不是度数。

代码语言:javascript
运行
复制
[rotate setToValue:[NSNumber numberWithFloat: 45*M_PI/180.]];
票数 2
EN

Stack Overflow用户

发布于 2013-05-03 13:18:33

对于左侧

代码语言:javascript
运行
复制
    CGAffineTransform transform = CGAffineTransformRotate(imgBg.transform, M_PI/-360);
    imgBg.transform = transform;

对于右侧

代码语言:javascript
运行
复制
    CGAffineTransform transform = CGAffineTransformRotate(imgBg.transform, M_PI/360);
    imgBg.transform = transform;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16351882

复制
相关文章

相似问题

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