【问题标题】:Creating a fanning out core animation创建扇出核心动画
【发布时间】:2010-01-08 23:26:37
【问题描述】:
我想创建一个动画,从一个小圆圈的外观开始,然后像这样进行:
- 出现第二个大圆圈
- 出现第三个大圆圈
- 第一个最小的圆圈消失了
- 出现4个大圆圈
- 第二个圆圈消失了
大概有六个左右的圈子。
圆圈将淡入/淡出。每个较大的圆圈都包围了它之前的较小的圆圈。这与您在教学截屏视频中看到的动画类型相同。教师点击某物,点击发生的地方有一个动画,随着圆圈变宽,动画会散开并逐渐消失。类似于将小石子扔进池塘。
我可以用几个 UIImageViews 和一个计时器来做到这一点。但是有没有更好的方法?
【问题讨论】:
标签:
iphone
objective-c
cocoa-touch
uiimageview
【解决方案1】:
我几乎不是核心动画专家,但请查看UIView +beginAnimations:context:
您可以为这样的视图设置 alpha 变化的动画(假设视图以 alpha 为 1 开始):
[UIView beginAnimations:@"Fadeout" context:nil]
myview.alpha = 0;
[UIView commitAnimations]
这称为动画块。如果该视图属性支持动画,则您在其中所做的任何更改都会慢慢地从之前的内容更改为您在此处指定的内容。在 alpha 的情况下,这将导致视图从 alpha 的 1 淡化到 alpha 的 0(此时它是不可见的)。
有方法可以设置动画时长,动画开始前的延迟,也可以嵌套这些动画块。
所以,我认为您可以使用嵌套动画块和 UIImageViews 来做到这一点,这些 UIImageViews 包含具有透明背景的圆圈或类似的东西。我不确定这是否是最佳方式,但这是一种应该有效的方式。有关所有动画方法,请参阅 UIView 文档。
【解决方案2】:
为什么不能将 UIImageView 与图像数组和动画一起使用?