iPhone查看旋转/摆动动画

时间:2012-04-25 10:33:57

标签: iphone animation rotation

我需要为uiimageview创建一个旋转动画。我能想到的最好的比喻是挂在墙上的照片。支撑图片的指甲放在图片的顶部。

如果我按下图片,我想要来回模拟图片的轻微摆动,直到它最终恢复到它的起始位置。

我知道我首先必须从更改视图的锚点开始,但我不确定如何解决问题的其余部分。我可以使用CABasicAnimation,但我猜测得到一个相对简单的动画会非常复杂/过度。

有什么建议吗?

[编辑]

这个answer对我来说实际上很适合使用块:)

1 个答案:

答案 0 :(得分:3)

我认为使用CABasicAnimation动画transform.rotation属性并选择正确的计时功能应该太难了。有点像:

    CABasicAnimation* anim = [CABasicAnimation animationWithKeyPath:@"transform.rotation"];
    [anim setToValue:[NSNumber numberWithFloat:startAngle]];
    [anim setFromValue:[NSNumber numberWithDouble:endAngle]];
    [anim setDuration:duration];
    [anim setRepeatCount:count];
    [anim setAutoreverses:YES];
    [anim setTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]];
    [selectedCoverView.layer addAnimation:anim forKey:@"SwingingRotation"];

关键是选择正确的计时功能;如果预定义的没有一个是正常的,您可以使用+ (id)functionWithControlPoints:(float)c1x :(float)c1y :(float)c2x :(float)c2y定义任意定时功能(控制点定义贝塞尔曲线)。