【问题标题】:(iphone) how to animate several images with speed variations between images?(iphone)如何以图像之间的速度变化为几张图像制作动画?
【发布时间】:2010-12-17 11:38:49
【问题描述】:

这一定是有人问过并回答过,但找不到答案。

我想做的基本上是像

这样的动画图像

图像1 0.1 秒
image2 0.3 秒
image3 0.2秒 image4 0.5秒

我查看了 CAKeyFrameAnimation,但不能确定这是否是我需要的。 (几乎没有图像/动画编程背景)

谢谢

【问题讨论】:

    标签: iphone animation performance


    【解决方案1】:

    CAKeyFrameAnimation 是让一个对象在一个动画的不同阶段进行不同的动画处理。例如,您的对象首先移动到一个点,然后将相同的动画继续到另一个点,然后再一个。

    您可以将 CABasicAnimation 与不同的持续时间值用于您想要制作动画的每个图像。

    CABasicAnimation *anim = [CABasicAnimation animationWithKeyPath:@"position.x"];
    anim.delegate = self;
    anim.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
    anim.toValue = [NSNumber numberWithFloat:50.0];
    
    anim.duration = 0.1;
    [image1 addAnimation:anim forKey:@"position.x"];
    anim.duration = 0.3;
    [image2 addAnimation:anim forKey:@"position.x"];
    anim.duration = 0.2;
    [image3 addAnimation:anim forKey:@"position.x"];
    anim.duration = 0.5;
    [image4 addAnimation:anim forKey:@"position.x"];
    

    【讨论】:

    • 感谢 什么是timingFunction?当每个图像都有单独的持续时间时。什么是“forKey”和“toValue”?
    • 啊,还有一件事,如果我想在一个屏幕上同时为两个集合设置动画,我需要 CAAnimationGroup?并且 CAAnimationGroup 也支持上述功能?
    • timingFunction 用于定义动画的时间。例如,kCAMediaTimingFunctionEaseInEaseOut 以慢速启动。变得更快到一个点。并且在动画结束时减速到动画结束时的速度为0。或者您可以使用 kCAMediaTimingFunctionLinear 来保持恒定速度。
    • forKey 用于命名动画以供将来访问。你可以随意命名它。 toValue 是动画的目的地。在此示例中,所有图像都将移动到点 (50.0, )
    • CAAnimationGroup 用于连接两个动画。例如,一个对象可以同时在 x 轴上移动和缩放。
    猜你喜欢
    • 1970-01-01
    • 2012-09-10
    • 2015-03-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多