我有一张卡通脸的图像可以旋转它,就像从左到右摇动一点点(就像我们听音乐时那样)持续一段特定的持续时间,比如5-7秒。所以,我正在做以下事情:
-(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"];
}
但是图像像球一样旋转!我认为我的代码根本不正确。我该怎么做轮换?
答案 0 :(得分:2)
旋转取弧度值,而不是度。
[rotate setToValue:[NSNumber numberWithFloat: 45*M_PI/180.]];
答案 1 :(得分:0)
Leftside
CGAffineTransform transform = CGAffineTransformRotate(imgBg.transform, M_PI/-360);
imgBg.transform = transform;
右侧
CGAffineTransform transform = CGAffineTransformRotate(imgBg.transform, M_PI/360);
imgBg.transform = transform;
答案 2 :(得分:0)
尝试使用旋转变换进行旋转。您必须先将图像设置为ImageView。假设它是faceImageView然后
faceImageView.transform = CGAffineTransformRotate(faceImageView.transform, angle);
它将旋转到所需的角度:)
答案 3 :(得分:0)
在CALayer.h中 anchorPoint - 定义图层边界矩形的锚点。动画。
@property CGPoint anchorPoint
假设你有一个calayer作为headLayer
headLayer.anchorPoint = CGPointMake(headLayer.bounds.size.width/2,headLayer.bounds.size.height);
这会使锚点降到中间底部。
现在,如果你应用旋转动画,那么中心就是这一点。
答案 4 :(得分:-1)
您将负责设置图层的锚点。将包含面的图层的锚点放在下中间底部。然后从这一点开始旋转。然后看起来头部正从颈部倾斜。