我的tableview中有56个部分,我正在存储当前在名为" activeTimeSlot"的整数变量中选择的部分编号。如何使用以下方法重新加载当前选定的部分。我这样做是为了
[self.tblView reloadSections:[NSIndexSet indexSetWithIndex:activeTimeSlot] withRowAnimation:UITableViewRowAnimationAutomatic];
但我观察到这样做是为所有部分调用tableview的下面数据源方法,即重新加载所有部分。
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
我不知道如何使用NSIndexSet以及如何使用NSIndexSet重新加载超过1个部分。
答案 0 :(得分:8)
如果您想更新多个部分,那么您可以这样做。
NSMutableIndexSet *indetsetToUpdate = [[NSMutableIndexSet alloc]init];
[indetsetToUpdate addIndex:previousSection]; // [indetsetToUpdate addIndex:<#(NSUInteger)#>]
// You can add multiple indexes(sections) here.
[detailTableView reloadSections:indetsetToUpdate withRowAnimation:UITableViewRowAnimationFade];
这用于更新多个部分,它对我来说很好。
希望它会对你有所帮助。
答案 1 :(得分:3)
正如我从您的评论中看到的那样,您正在检查方法的调用
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
弄清楚它正在重新加载每个部分。但是由于内部原因,可能会针对所有部分调用该方法。如果您尝试记录哪些行实际是真实的,您会发现一切都很好。放一个
NSLog(@"Section %d", indexPath.section);
在
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
并看到只重新加载所选部分的行。
PS:忘了说:你的解决方案已经正确了。