質問

以下の簡単な解決策を見つけようとしました。タイルを保持するメインビューがあります。UITableView上にドラッグアンドドロップしたいと思います。UIGestureRecognizer を使用して、ピック アンド ドラッグをすでにプログラムできました。

ここで私の問題は、テーブルビュー内でその上にドラッグされる項目があることをどのように検出できるかです。たとえば、タイルがその上に移動されたときに、指定された行を強調表示したいとします。

touchMoved/Began/Ended イベントを viewCell に追加しようとしました。タイルをその上にドラッグしているときは発火しません (つまり、タイルが私の指の下で viewCell の一部を隠しています)。上にドラッグされたタイルがない場合に起動されます。

そのための効果的なヒットテスト方法はありますか?

ありがとう。

役に立ちましたか?

解決

ここには対処すべき UI の問題が山ほどあります。

  • 一般に、iPhone でのドラッグ アンド ドロップは悪い考えです。これは非常に難しく、指がドラッグ操作の邪魔になるため、フィードバックを得るのが困難になります。
  • 表の選択したセルを使用して「ドロップ可能性」を示すと、アプリ ストアのレビュー担当者によって拒否される可能性があります。これは、「このセルに何かをドロップします」ではなく、「このセルを選択した」ことを示すためです。

そうは言っても、メッセージをやりくりしようとするのではなく、すべてのタッチ イベントを「ソース」ビューで管理し、そこからテーブル メッセージを送信することをお勧めします。-touchesBegan:withEvent を実行したら:は 1 つのビューで呼び出され、後続のすべての -touchesMoved:withEvent:および -touchesEnded:withEvent:そのタッチのライフサイクルの間、そのビューに送信されます。それらを転送すると、関係者全員が混乱するでしょう。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top