我正在尝试解决如何UITableViewCellStyle
在使用 iOS 6 中的新方法时设置UITableView
.
以前,在创建 a 时,UITableViewCell
我会更改UITableViewCellStyle
枚举以在调用时创建不同类型的默认单元格,initWithStyle:
但据我所知,情况不再如此。
UITableView
用于状态的 Apple 文档:
返回值:具有关联重用标识符的 UITableViewCell 对象。此方法始终返回有效单元格。
讨论:出于性能原因,表格视图的数据源在将单元格分配给其 tableView:cellForRowAtIndexPath: 方法中的行时,通常应该重用 UITableViewCell 对象。表视图维护数据源已标记为可重用的 UITableViewCell 对象的队列或列表。当被要求为表格视图提供新单元格时,从您的数据源对象调用此方法。如果一个可用的单元格可用,此方法会使现有单元格出列,或者根据您之前注册的类或 nib 文件创建一个新单元格。
重要提示:在调用此方法之前,您必须使用 registerNib:forCellReuseIdentifier: 或 registerClass:forCellReuseIdentifier: 方法注册类或 nib 文件。
如果您为指定的标识符注册了一个类并且必须创建一个新单元格,则此方法通过调用其 initWithStyle:reuseIdentifier: 方法来初始化该单元格。对于基于 nib 的单元格,此方法从提供的 nib 文件加载单元格对象。如果现有单元格可供重用,则此方法将改为调用该单元格的 prepareForReuse 方法。
这是实现新方法后我的新cellForRowAtIndexPath
外观:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *cellIdentifier = @"cell_identifier";
[tableView registerClass:[UITableViewCell class] forCellReuseIdentifier:cellIdentifier];
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier forIndexPath:indexPath];
return cell;
}
到目前为止我的代码工作正常,但总是返回默认样式。如何更改此设置,以便创建具有其他样式的单元格,例如UITableViewCellStyleDefault
、和?UITableViewCellStyleValue1
UITableViewCellStyleValue2
UITableViewCellStyleSubtitle
我不想子类UITableViewCell
化,我只想像在 iOS 6 之前所做的那样更改默认类型。Apple 会提供增强的方法但用最少的文档来支持它们的实现似乎很奇怪。
有没有人掌握了这个,或者遇到了类似的问题?我正在努力寻找任何合理的信息。