gpt4 book ai didi

ios - 为什么要创建一个 reuseIdentifier 而不是在 tableView 中分配/初始化一个单元格?

转载 作者:可可西里 更新时间:2023-11-01 06:24:35 25 4
gpt4 key购买 nike

我有一个存储为 self.array 的 NSString 数组。我是 iOS 的新手,我知道 reuseIdentifier 很可能有一个简单的优势,但我却没有意识到,但是当下面的代码也能正常工作时,为什么还要经历所有这些麻烦和冗长的语法呢?

- (UITableViewCell *)tableView:(UITableView *)tableView 
cellForRowAtIndexPath:(NSIndexPath *)indexPath {

UITableViewCell *cell = [[UITableViewCell alloc] init];
cell.textLabel.text = self.array[indexPath.row];

return cell;
}

最佳答案

这是滚动的速度:重复使用单元格可以帮助您平滑地滚动表格单元格。

调用 [[UITableViewCell alloc] init] 无缘无故地减慢了速度。对于什么都不做的细胞来说更难注意到,细胞变得越重,平滑度就越快。预分配和重用单元格让您获得视觉上令人愉悦的滚动。

此外,一次性 CPU 周期会耗尽您的电池。用户可以以相当快的速度滚动浏览表格,因此您在那里燃烧的周期可以快速累加。

添加重用标识符消除了对屏幕上可见的几个单元格之外的 [[UITableViewCell alloc] init] 的调用。当一个单元格离开屏幕时,UITableView 将该单元格添加到可重复使用的单元格池中,从而消除了单元格本身实例的内存分配和释放。当您的 tableView:cellForRowAtIndexPath: 请求新单元格时,UITableView 会返回一个已滚动屏幕的实例,因此您需要做的就是重新 -将实例配置为看起来像您需要显示的单元格。在许多情况下,重新配置现有单元比分配新单元要快得多。

这里是 a link to a question with information on other things that you could do to improve the performance of your scrolls .

关于ios - 为什么要创建一个 reuseIdentifier 而不是在 tableView 中分配/初始化一个单元格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23225815/

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