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 动画的主要内容,如果未能解决你的问题,请参考以下文章