UITableView如何在没有registerClass的情况下工作:forCellReuseIdentifier:

时间:2015-05-29 06:30:15

标签: ios objective-c uitableview

stroryboardUIViewController包含UITableView,其中我创建了一个动态UITableViewCell并为其指定了标识符。

UIViewController方法的cellforrowatindexpath中,我只是[tableView dequeueReusableCellWithIdentifier:CellIdentifier]

使用registerClass:forCellReuseIdentifier:,但我的应用程序运行正常。

如果没有registerClass:forCellReuseIdentifier:应用程序正常工作且单元格完美出列?

3 个答案:

答案 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

检查LazyTableImages项目 和UITableView Class Reference