我有一个包含多个部分的 tableView。
现在我想重新加载 tableView 的所有部分,除了第一个部分(因为它是静态的并且不会改变)。
我现在可以通过这种方法重新加载部分:
reloadSections(IndexSet, with: UITableView.RowAnimation)
但它需要部分的数量,在我的应用程序中这是动态的并且会随时间变化。
我只能说重新加载第一部分之后存在的任何内容。
我想我应该像这样定义一个IndexSet
:
NSIndexSet *indexSet = [NSIndexPath indexPathWithIndexes:(NSUInteger[]){1, ... } length:???];
我不知道我该怎么做!
如有任何想法或建议,我们将不胜感激。
update
这是 numberOfSectionsInTableView
实现:
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{
// Inbox Segment
if (self.selectedIndex == 0) {
if (self.inboxArray.count > 0) {
return self.inboxArray.count + 2;
}
}
// Sent Segment
else if (self.selectedIndex == 1) {
if (self.sentArray.count > 0) {
return self.sentArray.count + 2;
}
}
// Outbox Segment
else if (self.selectedIndex == 2) {
if (self.outboxArray.count > 0) {
return self.outboxArray.count + 2;
}
}
// Spam Segment
else if (self.selectedIndex == 3) {
if (self.spamArray.count > 0) {
return self.spamArray.count + 2;
}
}
// Trash Segment
else if (self.selectedIndex == 4) {
if (self.trashArray.count > 0) {
return self.trashArray.count + 2;
}
}
return 1;
}
最佳答案
假设您知道部分的数量:
NSIndexSet *sectionsIndexSet = [NSIndexSet indexSetWithIndexesInRange:NSMakeRange(1, self.sections.count - 1)]
[self.tableView reloadSections:sectionsIndexSet withRowAnimation:UITableViewRowAnimationNone];
swift :
let sectionsIndexSet = IndexSet(1..<sections.count)
tableView.reloadSections(sectionsIndexSet, with: .none)
关于ios - 重新加载 UITableView 除了它的一部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54200679/