5

テーブルビューには 56 のセクションがあり、現在選択されているセクション番号を「activeTimeSlot」という名前の整数変数に格納しています。以下の方法を使用して、現在選択されているセクションをリロードする方法。みたいにやってます

 [self.tblView reloadSections:[NSIndexSet indexSetWithIndex:activeTimeSlot] withRowAnimation:UITableViewRowAnimationAutomatic];

しかし、この方法を実行すると、すべてのセクションに対して tableview の以下のデータソース メソッドが呼び出されることがわかりました。つまり、すべてのセクションがリロードされます。

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section

NSIndexSet の使用方法と、NSIndexSet を使用して複数のセクションをリロードする方法がわかりません。

4

2 に答える 2

3

あなたのコメントから見たように、あなたはメソッドの呼び出しをチェックしています

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section

すべてのセクションをリロードしていることを確認します。しかし、おそらく内部的な理由で、そのメソッドはすべてのセクションに対して呼び出されます。実際に再ロードされた行をログに記録しようとすると、すべて問題ないことがわかります。置く

NSLog(@"Section %d", indexPath.section);

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

選択したセクションの行だけが再ロードされることを確認します。

PS:言うのを忘れました:あなたの解決策はすでに正しかったです。

于 2013-05-01T07:52:05.530 に答える