【发布时间】:2019-01-15 14:16:07
【问题描述】:
我有一个包含多个部分的 tableView。
现在我想重新加载除第一个部分之外的 tableView 的所有部分(因为它是静态的并且不会更改)。
我现在可以通过这种方法重新加载部分:
reloadSections(IndexSet, with: UITableView.RowAnimation)
但它需要部分的数量,并且在我的应用程序中这是动态的并且会随时间变化。
我只能说重新加载第一节之后存在的任何内容。
我想我应该像这样定义一个IndexSet:
NSIndexSet *indexSet = [NSIndexPath indexPathWithIndexes:(NSUInteger[]){1, ... } length:???];
我不知道该怎么做!
任何想法或建议将不胜感激。
更新
这是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;
}
【问题讨论】:
-
如果您使用分段的 tableView,您不应该知道您有多少个部分,因为我猜您实现了 numberOfSectionsInTableView: ?
-
如果我理解你的问题,
tableView.reloadData()应该没问题,如果第一部分是静态的,重新加载就可以了。这会更容易...... -
@Teetz 我有一些不同大小的动态数组,在不同的情况下,一个数组组成部分的数量。
-
另外一点,您可以遍历表格视图中的所有部分,但不能遍历第一个部分(我假设您可以识别它,因为您必须在
numberOfSectionsInTableView方法中提及它)然后重新加载它们. -
@AhmadF 不行,因为每次我重新加载tableView,第一部分都会闪烁。
标签: ios objective-c swift uitableview