我有一张卡通脸的图像,要旋转它,就像从左到右摇一下头一样(就像我们在听音乐时所做的那样),持续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"];
}
但是图像像球一样旋转!我认为我的代码是不正确的。我怎么做这个旋转?
旋转以弧度为单位,而不是角度。
[rotate setToValue:[NSNumber numberWithFloat: 45*M_PI/180.]];
For left
CGAffineTransform transform = CGAffineTransformRotate(imgBg.transform, M_PI/-360);
imgBg.transform = transform;
右侧
CGAffineTransform transform = CGAffineTransformRotate(imgBg.transform, M_PI/360);
imgBg.transform = transform;
尝试使用旋转变换进行旋转。你必须首先将图像设置为ImageView。假设是faceImageView
faceImageView.transform = CGAffineTransformRotate(faceImageView.transform, angle);
它将旋转到所需的角度:)
<p锚点-定义图层边界矩形的锚点。可以做成动画。>
@property CGPoint anchorPoint
假设你有一个callayer作为headLayer
headLayer.anchorPoint = CGPointMake(headLayer.bounds.size.width/2,headLayer.bounds.size.height);
这将使锚点位于底部的中下部。
现在,如果你应用旋转动画,那么中心将是它的这个点
你需要设置图层的锚点。将包含面部的图层的锚点放置在底部的中下部。旋转将从这一点开始。然后,它将显示头部从颈部倾斜。