我不完全明白为单元重用注册一个类有什么用。我了解我们如何在单元格上使用重用标识符,我只是不明白在 viewDidLoad 中调用此方法的作用。看了一堆文档。没有点击,n00b 在这里。有人可以给我一些提示吗?
TableViewController.m
- (void)viewDidLoad {
[super viewDidLoad];
// Register Class for Cell Reuse Identifier
[self.tableView registerClass:[UITableViewCell class] forCellReuseIdentifier:CellIdentifier];
}
最佳答案
你有一个UITableView
。它有一个为其提供 UITableViewCell
的数据源。为了节省内存和处理器周期,它卸载不再出现在屏幕上的 UITableViewCell
,并将它们放入重用队列中。当它加载一个新单元格时,数据源通常会向 UITableView
请求此重用队列中的一个单元格。如果队列当前为空,UITableView
将使用提供的类构造一个新的 UITableViewCell
。 reuseIdentifier
用于区分此特定单元格类型队列与同一 UITableView
中的另一个单元格类型队列。
像这样:
UITableView
:“嘿,数据源!给我这个 indexPath 的单元格。”
数据源
:“好吧。那是一种‘foo’类型的单元格。有没有你没有使用的那些正在运行的单元格?”
没有注册类(class);重用之前从数据源返回的单元格
UITableView
:“是的,我知道。给你。”
没有注册类(class);没有可用的单元格
UITableView
:“没有。嘿,我没有为那种单元格注册类。嗯。这里是 nil
。”
类已注册;重用之前从数据源返回的单元格
UITableView
:“是的,我知道。给你。”
类已注册;没有可用的单元格
UITableView
:“没有。但是我已经为该标识符注册了一个类。这是一个新实例。”
关于ios - 注册单元重用调用实际上有什么作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28440046/