我提到的DOC,它说:究竟做布尔参数做animateWithDuration:动画:完成:
完成
...此块没有返回值,并接受一个布尔该参数指示在调用完成处理程序之前动画是否实际完成。 ...
但是我发现没有使用布尔参数或没有事,completion:
块总会后animations:
块执行。就像下面显示的两个简单的基于块的动画代码片段一样,它们两个都是一样的。
[UIView animateWithDuration:0.3f
delay:0.0f
options:UIViewAnimationCurveEaseInOut
animations:^{
[myView setAlpha:0.0f];
}
completion:^(BOOL finished) {
[myView removeFromSuperview];
}];
和
[UIView animateWithDuration:0.3f
delay:0.0f
options:UIViewAnimationCurveEaseInOut
animations:^{
[myView setAlpha:0.0f];
}
completion:^(BOOL finished) {
if (finished) [myView removeFromSuperview];
}];
而且我发现,大多数人(包括我)使用第一个(甚至是苹果的官方文档例子)。所以,
- 什么是
finished
参数用于这里? - 或者情况会怎样?
伟大的问题,我从来没有真正想知道这件事,直到我的代码今天创建引起惊厥的动画。感谢您提出这个问题! – 2016-06-01 19:00:51