1

UITableView のカスタム サブクラスを設計しました。使用中のある時点で、UIView を UITableView の直接のサブビューとして追加し、指を使用してテーブル ビュー内にドラッグし、テーブル ビューから削除する必要があります。UILongPressGestureRecognizer を使用して、iOS カレンダー アプリとほぼ同じ方法でビューを作成し、フレームをリセットしてテーブル ビューの周りにドラッグし、セルに追加してテーブル ビューから削除します。

これは機能しますが、注意点が 1 つあります。指をすばやく動かしすぎると、UIView で「グリップを失い」、指をビューのフレーム内に戻して再び「持ち上げ」ない限り、指に追いつきません。

UITableView は UIScrollView からサブクラス化されているため、テーブル ビューの delaysContentTouchs および canCancelContentTouches プロパティを NO に設定し、ドラッグされる UIView の ExclusiveTouch プロパティを YES に設定してみました。何も機能していません。

最終的には、組み込みの iOS カレンダー アプリと同じくらいの応答性で、UIView をテーブル ビュー内にドラッグできるようにしたいと考えています。何かご意見は?

PS私はiOS開発に比較的慣れていないので、ここに大きな見落としがある場合はご容赦ください。

4

1 に答える 1

1

問題が解決しました!結局のところ、セットアップ (UITableView へのサブビューの追加とドラッグ) に本質的な問題はありませんでした。

いろいろ調べた結果、ビューが新しい座標にドラッグされるたびに、hitTest を実行していたことがわかりました。このような集中的な操作を毎秒実行すると、デバイスでの処理が遅くなり、この奇妙な動作が発生する可能性があることがわかりました。私がそれを変更したとき、すべてが完全に機能しました。

最終的に学ばなければならない教訓は、ビュー コントローラーのサブクラスが複雑すぎて読みにくいということでした。この問題を明らかにするには、あまりにも多くの掘り下げが必要でした。それ以来、私は自分のコードを単純化するために多大な労力を費やしてきました。

于 2013-02-20T20:08:27.087 に答える