0

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

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

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

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

ありがとう。

4

1 に答える 1

0

ここには、対処する必要のあるUIの問題がたくさんあります。

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

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

于 2010-03-18T10:13:44.857 に答える