1

私はUITableView配列からデータを入力しています - それを呼び出しましょうsections。はをnumberOfSectionsInTableView返しますがsections.count、特殊なケースを除いて -sections.countが 0 の場合は 1 を返します (1 は によって返されるセクションの最小数ですnumberOfSectionsInTableView)。nilこの場合、セクション ヘッダーとして返すので、UITableView空に見えます。

新しい項目が my に追加されると、dataSource手動で新しい行を挿入します。また、新しいセクションが必要かどうかを確認し、必要な場合は追加してsections新しいセクションを挿入します。しかし、ここで私の「特別なケース」が問題を引き起こします。

最初の項目を最初のセクションに追加するとき、新しいセクションを追加したくありません (常に最小セクションが 1 つあるため)。したがって、行を挿入するだけです。

行アニメーションの挿入は正しいように見えますが、途中で読み込まれた奇妙なヘッダーが表示されます。

ここに画像の説明を入力

本当に必要なのはUITableView、最初の行が挿入されたときにヘッダーをリロードすることだけです。しかし、テーブルビューまたはセクションをリロードするだけで挿入アニメーションを失いたくありません。

何か案は?

4

1 に答える 1

1

あなたが探していると思います-reloadSections:withRowAnimation:

セクション0の特殊なケースを追加または削除した後、次の呼び出しを行うことができます。

[self.tableView reloadSections:[NSIndexSet indexSetWithIndex:0] withRowAnimation:UITableViewRowAnimationAutomatic];

お役に立てば幸いです。

于 2012-09-15T01:19:49.370 に答える