UITableView重新加载section。

49

我希望重新加载一个部分而不是整个表格。在UITableView中有没有相应的方法。

[tableView reloadData]用于加载整个表格。
我想知道如何只加载一个部分,因为我的表格中有大量的行。


2
调用reloadData仍然只会重新加载当前屏幕上的UITableViewCells。 - james_womack
可能是 https://dev59.com/pU_Ta4cB1Zd3GeqPDsfz 的重复问题。 - Ankit Srivastava
11个回答

0

如果您有自定义的部分视图,可以在您的视图控制器中添加一个弱引用,并在需要时更新它。以下是我的参考代码:

@property (weak, nonatomic) UILabel *tableHeaderLabel;

....

-(UIView *) tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
{
    UITableViewHeaderFooterView *myHeader = [[UITableViewHeaderFooterView alloc] init];

    UILabel *titleLabel = [[UILabel alloc] init];
    [titleLabel setFrame:CGRectMake(20, 0, 280, 20)];
    [titleLabel setTextAlignment:NSTextAlignmentRight];
    [titleLabel setBackgroundColor:[UIColor clearColor]];
    [titleLabel setFont:[UIFont systemFontOfSize:12]];

    [myHeader addSubview:titleLabel];

    self.tableHeaderLabel = titleLabel; //save reference so we can update the header later

    return myHeader;
}

然后稍后您可以像这样更新您的部分:

- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath
{
    self.tableHeaderLabel.text = [NSString stringWithFormat:@"Showing row: %ld", indexPath.row];
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接