旋转到一个特定的角度不起作用



我有一张卡通脸的图像,要旋转它,就像从左到右摇一下头一样(就像我们在听音乐时所做的那样),持续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);

这将使锚点位于底部的中下部。

现在,如果你应用旋转动画,那么中心将是它的这个点

你需要设置图层的锚点。将包含面部的图层的锚点放置在底部的中下部。旋转将从这一点开始。然后,它将显示头部从颈部倾斜。

相关内容

最新更新