2012-04-04 14 views
0

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

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

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

UPDATE

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

答えて

0

あなたはUITableViewデリゲートメソッドを使用することはできませんが、UITableViewサブクラスオブジェクトを独自のデリゲートにすることを検討しましたか? realDelegateというサブクラスに別のプロパティを作成し、それ以外のデリゲートコールを渡します。

+0

これは興味深い考えです。私が見ている唯一の問題は、UITableViewがデリゲートが応答する内容に基づいて動作を変更するかどうかはわかりません。サブクラスを独自のデリゲートとして実装すると、デリゲートではありませんが、すべてに応答する必要があります。おそらくそれを実現する方法があるので、私の現在のアプローチがうまくいかなければ、あなたのものは次の行にあります。 :) –

+0

あなたのソリューションはうまくいきました。デリゲートとあまりにも多くの問題を抱えていなかったし、ヘッダー/フッターが正しく動作するためには、すべてのヘッダー/フッターに確実にアクセスする必要がありました。ありがとう! –

+0

"本当の代議員"に渡すかどうかを決めるif([self.delegate respondstoSelector:])を忘れないでください。 –

関連する問題