実際、タップ ジェスチャはまったく使用しないでください。
その秘密は、imageView のスーパービューを使用することです。
3 つの画像ビューが必要です....
UIImageView *ImageViewA
UIImageView *ImageViewB
UIImageView *DraggableImageView
画面をクリックすると、ホストビューが touchesBegan イベントを取得するとします... ImageViewA を取得して、次の方法で rect をテストすると、次のようになります。
[rect containsPoint:touchPoint];
これが true で、最初の imageView へのタッチに成功した場合は、次のように touchesMoved でドラッグ操作を開始します。
ImageViewA.superview を取得すると、ビューのホスト ビューが表示されます... ホスト ビューは次のコマンドを受け取ります。
[newDraggableImageView setFrame:ImageViewA.frame];
[newDraggableImageView setImage:ImageViewA.image];
[hostView addSubview:newDraggableImageView];
UIResponder メソッド touchesBegain touchesMoved および touchesEnded を使用して、ホスト ビューでタッチ イベントを追跡するようになりました。
touchesMoved: 動きの座標を newDruggableImageView のフレームに送信します...
ドラッグしているように... touchesEndedメソッドの1つ:
画像のフレームが 2 番目のドラッグ スポットのフレーム内にある場合は、最終的な画像ビューを設定できます。
if ([frame containsRect:anotherFrame])
ImageViewB.image = draggableImageView.image;
申し訳ありませんが、これは疑似コードです...論理フローを理解していただければ幸いです...ホストビューに画像を追加する...またはアプリケーションのウィンドウビューに画像を追加して移動します...移動が終了したら..位置をテストしますimageViewの新しい画像ビューを適切に設定します...
幸運を!そしてハッピーコーディング!