2

アニメーションとカスタムテーブルセクションヘッダーUIViewを使用して、UITableViewからセクションを削除しようとしています。

私が使う...

//Deletion from my model done here (not shown) and then perform the deleteSections...
[self.tableView beginUpdates];
[self.tableView 
  deleteSections:[NSIndexSet indexSetWithIndex:index]
  withRowAnimation:UITableViewRowAnimationNone];
[self.tableView endUpdates];

これは、セクションタイトルを使用して提供する場合に正常に機能します

tableView:titleForHeaderInSection:

しかし、私が使用して独自のカスタムヘッダーを提供する場合

tableView:viewForHeaderInSection:

目的のセクションを削除し、その下のすべてのセクションを上に移動します。私が起こっていると思うのは、削除アニメーションを実行する直前に新しいカスタムヘッダーを要求しているということです。したがって、desiredRow+1の削除をアニメーション化します。

最終的に、すべてのセクションが1つ上にシフトし、下部に空白のセクションが表示されます。

表の一番下までスクロールすると、戻ってきてセクションが再び正しく見つかります。

これは私が修正できるものではないと思います。カスタムセクションヘッダーを使用したAppleのコード処理セクションの削除に問題があるようです。通常、最初に自分のせいにするのは良い考えです:)。同じロジックを使用して、カスタムセクションヘッダーとNSStringセクションタイトルのモデルオブジェクトを検索しているため、コードでどのように問題が発生する可能性があるかがわかりません。

誰かがこれを修正する方法を知っていますか、それともセクションの使用を再考する必要がありますか?

4

1 に答える 1

0

この問題を解決して、reloadSections:atIndexPathを呼び出しました。これは1つの方法です。その他の方法:テーブルをリロードします(アニメーションが失われる可能性があります)uヘッダービューでフェッチコントローラーといくつかのプロパティを使用します。uが1つのオブジェクトを削除すると、フェッチコントローラーはuのリロードセクションを実行できます。

于 2011-05-29T12:54:58.020 に答える