首页 文章

UIView使用TRUE调用两次动画完成块

提问于
浏览
0

非常简单的动画:

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 .

我怎么知道动画是否真的完成了?

1 回答

  • 0

    每次动画完成时,只应调用一次完成块 . 确保未多次调用动画 .

    在您列出的代码的开头添加一个断点,编辑它以记录一些消息,如“动画启动”,并将其设置为在评估后继续 .

    如果您多次看到该消息,则可以将断点设置为每次停止并查看调用堆栈以查看调用的来源 .

    如果没有被召唤两次,可能是时候提交雷达......

相关问题