【发布时间】:2010-10-07 23:41:33
【问题描述】:
是否可以取消正在进行的UIView 动画?还是我必须降到 CA 级别?
即我做过这样的事情(也许也设置了结束动画动作):
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:duration];
[UIView setAnimationCurve: UIViewAnimationCurveLinear];
// other animation properties
// set view properties
[UIView commitAnimations];
但是在动画完成并且我得到动画结束事件之前,我想取消它(缩短它)。这可能吗?谷歌搜索发现有几个人问同样的问题却没有答案 - 并且一两个人推测这是不可能的。
【问题讨论】:
-
您的意思是在中间暂停动画并将其留在那里吗?还是回到开始的地方?
-
要么把它留在原处,在动画中间(实际上我会在之后立即开始另一个动画),或者直接跳到终点。我想第一个更自然,但在这种情况下任何一个都对我有用。
-
@Chris Hanson:我很欣赏您的编辑,但想知道您删除 iPhone 标签的理由是什么。可可触摸可能暗示了这一点,但我在 iPhone 上有一个标签过滤器,在这种情况下会错过这个。
-
@Boot To The Head(再次):你的问题,以及我自己对它的回答,促使我进行了更多的孤立测试,我发现如果你在第一个动画之前开始一个新动画完成它确实会在开始新的之前跳转到终点。
-
- 这满足了我的迫切需要(并表明我的真实代码中还有其他错误),但我将保留这个问题,因为我知道其他人一直在问同样的问题。
标签: ios core-animation uiviewanimation