我不完全理解注册用于单元重用的类的内容。我理解我们如何在单元格上使用重用标识符,我只是不明白在viewDidLoad中调用此方法的内容。看了一堆文档。不点击,在这里n00b。有人可以给我一些关于它的功能的提示吗?
TableViewController.m
- (void)viewDidLoad {
[super viewDidLoad];
// Register Class for Cell Reuse Identifier
[self.tableView registerClass:[UITableViewCell class] forCellReuseIdentifier:CellIdentifier];
}
答案 0 :(得分:8)
你有UITableView
。它有一个数据源,提供它UITableViewCell
。为了节省内存和处理器周期,它会卸载不再在屏幕上的UITableViewCell
并将它们放入重用队列中。当它加载新单元时,数据源通常会向UITableView
询问此重用队列中的单元。如果队列当前为空,UITableView
将使用提供的类构造新的UITableViewCell
。 reuseIdentifier
用于区分此特定单元格类型队列与同一UITableView
内的另一个单元格类型队列。
这样的事情:
UITableView
:"嘿,数据源!给我这个indexPath的单元格。"
Datasource
:"好的。这是一个' foo'那种细胞。你有没有使用那些你没有使用过的人?"
没有注册课程;重用先前从数据源返回的单元格
UITableView
:"是的,我知道。你走了。"
没有注册课程;没有可用的单元
UITableView
:"不。嘿,我没有为这种细胞注册的课程。嗯。这是nil
而已。"
已注册课程;重用先前从数据源返回的单元格
UITableView
:"是的,我知道。你走了。"
已注册课程;没有可用的单元
UITableView
:"不。但我有一个注册该标识符的类。这是一个新实例。"
答案 1 :(得分:0)
只有在使用自定义TableViewCells类时才需要注册类如果您使用的是故事板,也可以在Interface Builder中执行此操作。