簡體   English   中英

用TRUE兩次調用的UIView動畫完成塊

[英]UIView animate completion block called twice with TRUE

非常簡單的動畫:

UIView.animate(withDuration: 3, delay: 0, options: .curveLinear, animations: {
  self.imageViewA.snp.remakeConstraints({ (make) in
    make.bottom.equalTo(50);
  })
  self.layoutIfNeeded();
}, completion: {(done) in
  print(done); //called twice, both times as true
});

動畫效果很好。 但是,完成塊被調用兩次。 這也很好,我知道我需要檢查布爾值以查看它是否真正完成。 好吧,不僅完成塊被調用兩次,而且兩次完成都為TRUE。

我怎么知道動畫是否真正完成?

每次動畫完成時,只能調用一次完成塊。 確保動畫不被調用多次。

在您列出的代碼的開頭添加一個斷點,對其進行編輯以記錄諸如“動畫開始”之類的消息,並將其設置為在評估后繼續。

如果您多次看到該消息,則可以將斷點設置為每次都停止,並查看調用堆棧以查看調用來自何處。

如果沒有兩次被召喚,也許是時候提起雷達了……

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM