私は理解しようとしていますUIView animateWithDuration:completion
。私がやろうとしているのは、UIView を別の UIView にドラッグすることです。それらが交差する場合は、ドラッグする UIView のアルファを 0 に設定してから、ドラッグする UIView を元の場所にリセットします。アイデアは、アイテムをバケットにドラッグ アンド ドロップすることです。まず、アルファを 0 に設定してからリセットします。これは、ドラッグ ビューのパン ジェスチャ レコグナイザのコードです。
else if (gestureRecognizer.state == UIGestureRecognizerStateEnded) {
// Update the description view
if (CGRectIntersectsRect(panViewPiece.frame, _descriptionView.frame)) {
[UIView animateWithDuration:0.25 animations:^{
self.dragDescriptionView.alpha = 0.0;
}completion:^(BOOL finished) {
if (finished) {
panViewPiece.center = _dragDescriptionViewOriginalCenter;
self.dragDescriptionView.alpha = 1.0;
}
}];
[self updateDescriptionView];
}
}
したがって、完了ブロックが機能する方法は、最初の animateWithDuration が終了したときに完了ブロックが呼び出されると思いました。最初の部分でアルファを 0 に設定しようとしています。それが完了したら、panViewPiece を元の場所に戻し、そのアルファを 1 に設定します。四角形が交差した後、アルファは 0 になります。元の中心に戻ると 1 に戻ります。元の位置にスナップしている間、ビューを表示したくありません。完了ブロックを正しく理解していますか? それとも、これが機能する方法ではありませんか?ありがとう!