注册细胞重用的调用实际上做了什么?
我并不完全理解注册一个类进行单元重用的内容。 我理解我们如何在单元格上使用重用标识符,我只是不明白在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的单元格。”
Datasource
:“好吧。那是一种’foo’类型的细胞。有没有那些你没有使用过的人?”
没有注册课程; 重用之前从数据源返回的单元格
UITableView
:“是的,我知道。你走了。”
没有注册课程; 没有细胞可用
UITableView
:“没有。嘿,我没有为这种单元注册的类。嗯。这里没有了。”
class级注册; 重用之前从数据源返回的单元格
UITableView
:“是的,我知道。你走了。”
class级注册; 没有细胞可用
UITableView
:“不。但我有一个为该标识符注册的类。这是一个新实例。”
只有在使用自定义TableViewCells类时才需要注册类如果您使用的是故事板,则还可以在Interface Builder中执行此操作。