1

概念は、ユーザーがビュー内のアイコンをタップすると、アイコンのコピーがユーザーの指の下にポップアップ表示され、指を離すまでドラッグできるというものです。そのために、私は次のことを望みます

  1. アイコンにはタッチイベントがあります
  2. 透明な全画面 UIView を追加し、アイコンを含む UIImageView を貼り付けます。
  3. touchMoves または uiPanGestureRecognizer を追跡し、タッチアップするまで UIImageView を移動します

問題は、ユーザーが指を離して元に戻すまで、touchMoves (および uiPanGestureRecognizer) が追跡しないことです。つまり、何が起こっているかは次のとおりです。

  1. アイコンにはタッチイベントがあります
  2. 透明な全画面UIViewを追加し、アイコンを含むUIImageViewサブビューを追加します。
  3. ユーザーが指をドラッグしても何も起こらないので、指を離してもう一度ドラッグします
  4. touchMoves または uiPanGestureRecognizer を追跡し、タッチアップするまで UIImageView を移動します

どうやら、UIView がドラッグを認識するためには、UIView 内で開始する必要があるようです。私は(素朴に)タッチダウンイベントを透明なビューに送信しようとしましたが、機能していません。

他のアイデアはありますか?

どうもありがとう...

4

2 に答える 2

1

トリックは、単一の UIPanGestureRecognizer を使用することです。元の「アイコン」(UIView) に 1 つ追加し、それを使用して最初のタッチとパンの開始を検出します。UIPanGestureRecognizer が UIGestureRecognizerStateBegan に入ったら、ドラッグをアニメーション化するビューを作成します。元のアイコン ビューとハンドラーは引き続きコールバックを受け取ります。UIGestureRecognizerStateChanged をテストし、元のハンドラー内から新しい移動ビューを変換できます。

于 2010-11-27T21:59:45.403 に答える
1

私の知る限り、ドラッグが開始されたビュー以外のビューでドラッグを開始することはできません。アクセスできる人は、autoscroll WWDC 2010 プロジェクトを見てください。基本的に、テーブル セルのビューでドラッグを開始し、その TableCell をテーブルビューからドラッグできるようにします。それはうまく機能し、おそらく私がたどる道になるでしょう。

于 2010-10-04T23:27:09.593 に答える