ユーザーイベントに応じて「長い」アクションを実行する正しい方法は何かをさまよっています。たとえば、このスライドは、0.5 秒以上画面外でアニメーション化するブロックをキャンセルするために使用します。[self coreDataAction]
自体に0.3秒程度かかる場合があります。
ユーザーがアニメーションの最後を確認したらアクションが完了するようにしたい (ユーザーが誤って別のコントローラーに移動したり、アクションが完了したと思ってアプリを閉じたりしないようにしたい)。
この場合はどこに入れればいい[self coreDataAction];
ですか?ブロックの上、ブロック内、または完了ブロック内?
//should I put it here?
CGPoint slideToCancelCenter = slideToCancel.view.center;
[UIView animateWithDuration:0.5 animations:^{
self.goToSleepButton.center = slideToCancelCenter;
[UIView setAnimationDuration:0.5];
CGPoint sliderCenter = slideToCancel.view.center;
sliderCenter.y += slideToCancel.view.bounds.size.height;
slideToCancel.view.center = sliderCenter;
//should I put it here?
// [self coreDataAction];
} completion:^(BOOL finished) {
//should I put it here?
} ];