12

私は次のことを行う方法を知りたかった:

ユーザーが行の1つをタップして保持すると編集モードに入るUItableViewがあります

編集モードに入ったら、セルを選択したままにし、ユーザーの指の下で飛び出す効果を与える必要があります。

ユーザーは、ポップアウトされたセルをドラッグして、指を離さずに別の行に再配置できる必要があります。

私がすでに持っているもの:

ロングタップジェスチャレコグナイザーがあり、ロングタップジェスチャレコグナイザーセレクターでテーブルを編集に設定しました。

ただし、現在セルをドラッグするには、指を上げて再タップしてセルをドラッグする必要がありますが、これは私が望んでいるものではありません。

どんな助けでも大歓迎です。

4

2 に答える 2

0

現時点では回避策があります (簡単ではありません): https://stackoverflow.com/a/7501076/326017

ここでコード スニペットを見つけました: https://github.com/FlorianMielke/FMMoveTableView

「FMMoveTable は、テーブルを編集モードに切り替えることなく、適切な行をタップアンドホールドするだけで行を移動できる UITableView サブクラスです」 - 説明より

于 2012-10-21T20:58:49.890 に答える
0

記事Reordering a UITableViewCell from any touch pointでは、この正確なシナリオについて説明しています。

基本的に、次のことを行います。

  1. UITableViewCellReorderControl(プライベート クラス)を検索します。
  2. セル全体に広がるように展開します。
  3. 隠します。
  4. ユーザーはどこからでもセルをドラッグできるようになります。

別のソリューションであるクックブック: ロング プレス ジェスチャを使用してテーブル ビュー セルを移動する では、次の操作を行うことで同じ効果が得られます。

  1. テーブル ビューに長押しジェスチャー レコグナイザーを追加します。
  2. セルがドラッグされたときにセルのスナップショットを作成します。
  3. セルがドラッグされると、スナップショットを移動し、-[UITableView moveRowAtIndexPath:toIndexPath:].
  4. ジェスチャが終了したら、セルのスナップショットを非表示にします。
于 2014-07-03T00:39:41.117 に答える