2

多くの行と多くのセクション (500 以上のセクション) を持つ UITableView があります。dequeueReusableCellWithIdentifier メソッドを使用して表示される行のみがロードされるため、多くの行があることはそれほど悪いことではありません。問題は、[tableView reloadData] を実行するたびにすべてのセクション ヘッダーが読み込まれることです。

行に使用するのと同じ方法で、デキューされたセクション ヘッダーを使用する方法はありますか?

そうでない場合、私が考えることができる唯一の2つのオプションは次のとおりです。

  1. セクションヘッダーキューを自分で処理します。
  2. セクション ヘッダーをカスタム セルにし、セクション セル マッピングを自分で管理します。

私はNSFetchedResultsControllerを使用しているため、両方のソリューションは非常に複雑です。

4

2 に答える 2

0

すべてのセクション ヘッダーが毎回ロードされることが確実な場合*、それはシステムの動作であることを意味します。

NSFetchedResultsController を使用すると何が複雑になりますか? もしそうなら、より柔軟に独自の UITableViewDelegate/DataSource を作成する必要があります。

*つまり

 - (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section

また

 - (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section

[tableView reloadData] メッセージを送信すると、X 回呼び出されます。

于 2012-02-06T05:56:52.350 に答える
0

幸いなことに、私の受け入れ率については、この問題は iOS6 で解決されました: UITableView の dequeueReusableHeaderFooterViewWithIdentifier メソッド。

于 2013-03-11T14:05:19.103 に答える