我正在尝试实现一个能够反复循环显示三个或更多图像的可点击图像。一旦设置了循环,我就不需要与图像交互。骑自行车是基于时间的,而不是基于事件的。图像应该平滑地从一个过渡到另一个。
解决此问题的最佳方法是什么?
我的第一种方法是在单个方法中使用有限状态机,并且链UIView
动画使用该方法的选择器阻塞在一起。由于[button setImage:nextImage forState:UIControlStateNormal]
未设置动画,因此失败。
我的第二种方法是查看CABasicAnimation
和图层。这似乎是一种更低级别的方法,但我看不到将转换链接在一起的方法(例如,一旦完成此操作就设置下一个动作)。
我的直觉是,接近使用多个按钮并在它们之间消失是完全错误的,但我不知道下一步该去哪里。
如何在UIButton
中的图像之间平滑淡出?
如何将这些过渡链接在一起?
什么是正确的方法?
修改 图像i1,i2,i3需要按顺序i1 - > i2 - > i3 - > i2 - > i1 - > i2 - > i3等
答案 0 :(得分:4)
我的第一个想法是UIImageView.animationImages
,但我不认为它支持褪色。
请勿使用UIButton
来显示图像;只需将它作为处理绘图的其他内容的隐藏按钮。
执行所需动画的一种简单方法是使用两个图像视图:将“淡入”图像视图移动到前面(-[UIView bringSubviewToFront:]
)将其alpha设置为0,然后为其alpha设置动画到1。
答案 1 :(得分:0)
我的解决方案:
UIButton
和容器UIView
。UIView
包含所有图片UIImageView
子视图。我不确定这是否是正确的做事方式,但它似乎比其他方式更整洁 -
答案 2 :(得分:-3)
我很确定这样的事情会奏效:
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:duration];
[button setImage:whicheverImage forState:UIControlStateNormal];
[UIView commitAnimations];
如果你给它的持续时间可能是0.5(秒),它应该顺利淡出。