gpt4 book ai didi

ios - UITableView reloadSection 导致为所有行调用 cellForRowAtIndexPath

转载 作者:行者123 更新时间:2023-11-29 04:41:39 25 4
gpt4 key购买 nike

我有一个带有 UITableViewController 的应用程序,最初只有一个部分和一行(其中显示“正在加载...”)。它从互联网获取一些数据,然后进行以下调用:

[tableView reloadSections:[NSIndexPath indexSetWithIndex:0] withRowAnimation:UITableViewRowAnimationFade];

这是必要的,因为在获取数据后,现在有很多行,而不仅仅是最初的 1 行(因此不可能向 TableView 询问可见单元格的列表,因为它只返回1 个旧的)

问题是它随后调用 cellForRowAtIndexPath 每一行的委托(delegate)方法,而不仅仅是可见的行。我已经通过在方法中添加一些日志来验证这一点。如果我将线路切换为简单的 [tableView reloadData]那么它只调用cellForRowAtIndexPath对于前几行,直到您滚动并看到其他行为止。我的 iOS4 iPod Touch 和 iOS5 模拟器上都会出现这种情况。

我有大约 300 行,这使得加载速度非常慢,并且通常在我的 iPod Touch 上崩溃。

我不只是使用 reloadData 的原因是我希望添加新行进行动画处理,而 reloadData只是让他们突然出现。

最佳答案

你可以这样做:

[tableView reloadRowsAtIndexPaths:[tableView indexPathsForVisibleRows] 
withRowAnimation:UITableViewRowAnimationNone];

关于ios - UITableView reloadSection 导致为所有行调用 cellForRowAtIndexPath,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10301177/

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