我提到的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