iPhone:管理视图动画到异步事件

Posted

技术标签:

【中文标题】iPhone:管理视图动画到异步事件【英文标题】:iPhone: Managing animations of views to asynchronous events 【发布时间】:2011-03-01 22:35:48 【问题描述】:

我有一个 UIView,我正在向它添加两个子视图之一。如果事件 1 进入,则显示子视图 1。如果事件 2 进入,则显示子视图 2。

因此,以下工作(伪代码):

on_event1: add subview 1 and remove subview 2
on_event2: add subview 2 and remove subview 1

现在,我想添加一个过渡动画,通过更改 alpha 在两个视图之间交叉淡入淡出。

我的问题是,如果事件 1 的动画正在进行并且事件 2 到达,我无法取消当前动画并开始下一个动画。我想做的是停止当前动画并立即开始下一个。

我该如何做或最接近的替代方法?

【问题讨论】:

【参考方案1】:

这个问题解决了中途停止动画的常见方法:

Cancel a UIView animation?

【讨论】:

它谈到了 setAnimationBeginsFromCurrentState。使用积木时可以这样做吗?【参考方案2】:
[UIView transitionFromView:subview1 toView:subview2 duration:0.75 options:UIViewAnimationOptionBeginsFromCurrentState completion:^(BOOL finished) ];

【讨论】:

以上是关于iPhone:管理视图动画到异步事件的主要内容,如果未能解决你的问题,请参考以下文章

iphone弹出键盘时取消滚动动画

iPhone:在为导航栏显示/隐藏设置动画时无法为 contentInset 设置动画

iPhone 模态视图动画帮助

iphone - self.view 转换可以动画吗?

使用翻转视图 (iPhone) 时出现抖动事件的问题

iPhone 多子视图动画