私は以下の小さな機能を持っています。 3秒間のアニメーション、そしてそのアニメーションの完成時に、別の関数呼び出し。ただし、UIViewアニメーションが完了する前に、別の関数を呼び出すコード行が実行されているということが起こります。完了ブロックが動作していないUIViewアニメーション
func switchToNormalState() {
print("Switching to Normal State")
currentState = "normal"
intervalCounter = intervalCounter + 1
setVisualsForState()
UIView.animateWithDuration(Double(normalDuration), animations: {() -> Void in
self.ProgressBar.setProgress(1.0, animated: true)
}, completion: { _ in
self.switchToFastState()
})
}
私は解決策を探して他の同様の記事を研究してきたが、解決策のどれも私のパズルを解いていません。これらのアクションをシーケンスではなく同時に実行するには、コンプリーションブロックで何が間違っていますか?
progressBarにもアニメーションがあるので、アニメーションブロックが実行されるとすぐに完了ブロックが実行されると思います。しかし、プログレスバーがアニメーションのプロセスにあるので、機能が高速に実行されます。 –
@ChathurangaSilvaが言うことは正しいと思います。とにかくこれにUIViewアニメーションブロックを使用しているのはなぜですか?プログレスバーには独自のアニメーションがあります。 –