0

最好通过陈述我的问题来提出我的问题:

在我的应用程序中,有两个按钮选择,比如说 1 和 2。当您单击并按住 1 时,2 会在 0.3 秒内淡出(alpha 变化),反之亦然。

如果用户“取消”该按钮触摸(通过将手指从按钮上拖开并释放),则相反的按钮会淡入。

这一切都很好。当用户没有按住按钮并单击它以便在 0.3 秒内注册触摸时会出现问题(另一个按钮淡出所需的时间)问题是有更多的动画必须在这一切之后发生,所以我想我的问题是动画进一步中断了 0.3 秒的褪色,事情开始看起来很尴尬。

建议使用这个?谢谢!

4

1 回答 1

1

正如本文所建议的,您应该创建一个辅助 UIView 动画,该动画与您的 0.3 秒动画端点相同。确保将动画设置为从当前状态开始,并尽可能缩短它允许的时间。基本上,这将使您的所有视图看起来都像在第一个动画结束时一样,并且会更快地发生。完成该动画后,您将根据按钮结果制作其他动画。

[UIView beginAnimations:nil context:NULL];
[UIView setAnimationBeginsFromCurrentState:YES];
[UIView setAnimationDuration:0.03];
[UIView setAnimationCurve: UIViewAnimationCurveLinear];
// here you set your view and animation stuff from the other animation that takes 0.3 seconds

[UIView commitAnimations];

这将使您快速进入 0.3 秒动画之后的状态,您可以从那里开始动画。

于 2013-05-08T20:29:07.563 回答