0

わかりましたので、UITableView に表示されるヘッダー/フッターにアクセスする必要があるという問題があります。さらに、UITableView のサブクラスからこれを行う必要があります (そのため、UITableView デリゲートからビューにタグを単純に割り当てることはできません)。UITableView は、目に見えるヘッダーとフッターの配列を保持しますが、サブクラスであってもこれらの配列へのアクセスを提供しません。

カスタムのドラッグ アンド ドロップ挿入/移動ユーザー インターフェイスを提供できるようにするために、これが必要です。私は、Apple 独自の再配置インターフェイスとほぼ同じように機能させようとしていますが、もちろん、独自のカスタム実装 (別のテーブルからドラッグする機能など) を使用しています。ヘッダー/フッターを除いて、すべてが完全に機能します。

現時点では、UITableView のすべてのサブビューを反復してハッキングしようとしています。UITableView の唯一のサブビューは、backgroundView、UITableViewCells、およびヘッダー/フッターであると確信しています。したがって、どれが UITableViewCells であるか (非常に簡単)、どれがバックグラウンド ビューであるか (これも簡単)、どれがヘッダー/フッターであるか (それほど簡単ではありません) を判断する必要があります。私はこの方法でそれを行うことができると確信していますが、それは間違いなくハックであり、可能であればより良い方法を見つけたいと思っています.

アップデート

メソッドをオーバーライドし- (void) setDelegate:(id<UITableViewDelegate>)delegate、デリゲートが適切なセレクターに応答してヘッダー/フッターを生成するかどうかを確認しています (そして BOOL を適切に設定します)。これにより、ヘッダー -> セル -> フッターの進行が予測可能であるため、特定のサブビューが何であるかを判断するのがはるかに簡単になります。

4

1 に答える 1

0

UITableView デリゲート メソッドを使用できないとのことですが、UITableView サブクラス オブジェクトを独自のデリゲートにすることを検討しましたか? サブクラスに realDelegate という別のプロパティを作成し、他のすべてのデリゲート呼び出しをそこに渡します。

于 2012-04-04T13:57:18.603 に答える