iPhone 动画

Posted

技术标签:

【中文标题】iPhone 动画【英文标题】:iPhone animation 【发布时间】:2009-11-24 20:48:17 【问题描述】:

我尝试在 iPhone 上制作动画,希望有人能帮我解决问题。

我正在使用 CAKeyframeAnimation 和 CAPath 来为周围的视图设置动画。

我设置了这些设置:

animation.removedOnCompletion = YES; 
animation.fillMode = kCAFillModeRemoved;

以便在动画完成时从图层中删除动画我希望视图响应触摸。正如我发现的那样,如果我设置:

animation.removedOnCompletion = NO;
animation.fillMode = kCAFillModeForwards;

然后视图不再响应动画后的触摸。

这也产生了负面影响,即在动画结束时必须手动将视图定位到其完成位置。

我所做的理论有效,但在实践中,在我可以在 animationDidStop 方法中手动设置其位置之前,视图会跳转回其原始位置。

那么是否有可能让动画的最终位置保持不变并且视图响应触摸?

【问题讨论】:

【参考方案1】:

将填充模式设置为 kCAFileModeForwards 会使动画看起来好像在动画的最后一步,但它只是外观。您实际上需要设置要设置动画的任何属性。如果是这个位置,你需要调用:

[layer setPosition:destinationPoint];

在图层上。然后您不必设置填充模式或告诉它不要在完成时删除动画。您需要确保为关键“位置”设置动画,以便用您自己的覆盖默认动画。在将动画添加到图层之前调用 -setPosition。像这样的:

[layer setPosition:destinationPoint];
[layer addAnimation:kfAnimation forKey:@"position"];

【讨论】:

以上是关于iPhone 动画的主要内容,如果未能解决你的问题,请参考以下文章

iPhone 动画加载屏幕

iPhone 动画核心图形

iPhone 闪耀动画

iPhone开发:倒放动画

iPhone:移动没有动画的 UIButton

iphone查看动画问题