2015-05-29 76 views
2

stroryboard我有UIViewController其中包含UITableView并在其中我创建了一个动态UITableViewCell并给它一个标识符。UITableView如何在没有注册类的情况下工作:forCellReuseIdentifier:

UIViewController in cellforrowatindexpath方法我简单地做了[tableView dequeueReusableCellWithIdentifier:CellIdentifier]

我做了不是使用registerClass:forCellReuseIdentifier:但我的应用程序运行完美。

如何没有registerClass:forCellReuseIdentifier:应用程序正在工作,单元格完美地出队?

回答

4

该标识符的单元定义在故事板中指定,在编译过程中将其转换为NIB,并在取消存档期间将单元NIB注册到表视图。

1
registerClass:forCellReuseIdentifier: 

当您使用自定义类中的tableview你的这种方法只使用,目前已确定它会自动使用默认的UITableViewCell类的原型细胞,你必须访问单元格属性带有标记值,但如果是自定义类,则为CustomCell.h中的标签/文字视图/图像视图制作属性或插口,并且您必须在加载ViewController时注册具有唯一标识符名称的类,以便tableview在运行时可以理解应根据故事板中使用的单元格标识符加载哪个单元类。

0

讨论

出队的任何细胞之前,调用此方法或 的registerClass:forCellReuseIdentifier:方法来告诉表视图 如何创建新的细胞。如果指定类型的单元格当前不在重用队列中,则表格视图使用提供的 信息自动创建新的单元格对象。

如果您先前使用相同的重复使用 标识符注册了一个类或nib文件,则您在nib参数中指定的nib将替换旧的 条目。如果要从指定的重用标识符注销注嘴nib ,您可以指定nil作为nib。

如果对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