在stroryboard
我UIViewController
包含UITableView
,其中我创建了一个动态UITableViewCell
并为其指定了标识符。
在UIViewController
方法的cellforrowatindexpath
中,我只是[tableView dequeueReusableCellWithIdentifier:CellIdentifier]
。
我不使用registerClass:forCellReuseIdentifier:
,但我的应用程序运行正常。
如果没有registerClass:forCellReuseIdentifier:
应用程序正常工作且单元格完美出列?
答案 0 :(得分:4)
该标识符的单元格定义在故事板中指定,在编译期间将其转换为NIB,在取消归档期间,单元格NIB将在表格视图中注册。
答案 1 :(得分:1)
registerClass:forCellReuseIdentifier:
此方法仅在您在tableview中为单元格使用自定义类时使用,目前您已定义了一个自动使用默认UITableViewCell类的原型单元格,并且您必须使用标记值访问单元格属性,但是在自定义类的情况下,您在CustomCell.h
中为标签/ textviews / imageviews创建属性或出口,并且您必须在加载ViewController时注册具有唯一标识符名称的类,以便tableview可以在运行时理解应根据故事板中使用的单元标识符加载单元类。
答案 2 :(得分:0)
讨论
在出列任何单元格之前,请调用此方法或 registerClass:forCellReuseIdentifier:告诉表视图的方法 如何创建新单元格。如果指定类型的单元格不是 当前处于重用队列中,表视图使用提供的 用于自动创建新单元格对象的信息。
如果您以前使用相同的重用注册了类或nib文件 标识符,您在nib参数中指定的nib将替换旧的 条目。如果要取消注册nib,可以为nib指定nil 来自指定的重用标识符。
如果您正在为UITableviewCell ContentView使用单独的UITableViewCell类或xib文件,则可以通过类文件访问UIElements。在Storyboard中,UITableViewDataSource通过其标识符获取单元格。
UINib *sectionHeaderNib = [UINib nibWithNibName:@"Header" bundle:nil];
[self.tableView registerNib:sectionHeaderNib forHeaderFooterViewReuseIdentifier:SectionHeaderViewIdentifier];
// [self.tableView registerClass:[UITableViewCell class] forCellReuseIdentifier:@"Cell"]; // register your your UITableView Class