gpt4 book ai didi

ios - tableView beginUpdates/endUpdates block 重新加载整个表,即使为空

转载 作者:行者123 更新时间:2023-12-01 18:54:26 25 4
gpt4 key购买 nike

我有一个tableView,它会定期由来自远程服务的数据进行更新。我加载数据,并存储刚插入,删除或更新的各种数据的indexPaths。然后,我有一个begin / endUpdates块,可以完成必要的操作,如下所示。

    [self.tableView beginUpdates];
if (pathsToDelete) {
[self.tableView deleteRowsAtIndexPaths:pathsToDelete withRowAnimation:UITableViewRowAnimationNone];
}
if (pathsToRefresh) {
[self.tableView reloadRowsAtIndexPaths:pathsToRefresh withRowAnimation:UITableViewRowAnimationNone];
}
[self.tableView insertRowsAtIndexPaths:indexPathsToAdd withRowAnimation:UITableViewRowAnimationNone];
[self.tableView endUpdates];

我最近注意到,单元的重新加载方式超出了我的预期。在调试器中,我注意到在刷新单个记录的情况下(即,pathToRefresh是唯一具有任何内容的记录,并且它只有一个索引),实际上整个表都在重新加载。那样的话,我的意思是我看到了表中每个单元格对dataSource的请求。

在调试中,我开始精简内容。我一直到只有我的地步
        [self.tableView beginUpdates];
[self.tableView endUpdates];

即便如此,我仍然看到整个表都重​​新加载(即,针对数据源中的每个值都触发了cellForRowAtIndexPath)。所以我以为我错过了其他事情..但是删除这两种方法导致重新加载停止。

万一没有任何内容,begin / endUpdates不应该什么都不做?我对这里实际发生的事情不知所措,因为该文档表明它们所做的只是书挡表操作-在这种情况下,我没有任何操作。

最佳答案

objective-c iOS reloadRowsAtIndexPaths,reloadSections

if([self.tableView numberOfRowsInSection:([self.tableView numberOfSections]-1)]-1 == -1){

row = 0;

}else{

row = [self.tableView numberOfRowsInSection:([self.tableView numberOfSections]-1)]-1 ;

}

NSIndexPath* indexPath = [NSIndexPath indexPathForRow: (row) inSection: ([self.tableView numberOfSections]-1)];

// [self.tableView reloadData];

[self.tableView beginUpdates];

[self.tableView reloadSections:[NSIndexSet indexSetWithIndex:0] withRowAnimation:UITableViewRowAnimationAutomatic];

[self.tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationNone];

[self.tableView endUpdates];



NSLog(@”Number of Sections %ld”, (long)[self.tableView numberOfSections]);

NSLog(@”Number of Rows %ld”, [self.tableView numberOfRowsInSection:([self.tableView numberOfSections]-1)]-1);

关于ios - tableView beginUpdates/endUpdates block 重新加载整个表,即使为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28710509/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com