我正在尝试解决如何设置的 UITableViewCellStyle
时,使用新的方法在 iOS6的 UITableView
。
以前,在创建 UITableViewCell
时,我会更改 UITableViewCellStyle
枚举,以便在调用 initWithStyle:
时创建不同类型的默认单元格,但从我收集到的信息来看,情况已经不是这样了。
苹果公司为 UITableView
提供的文件中写道:
返回值 强 > : 具有相关重用标识符的 UITableViewCell 对象。此方法始终返回有效的单元格。
讨论 强烈 > : 出于性能原因,当表视图为其 tableView: cellForRowAtIndexPath: 方法中的行分配单元格时,表视图的数据源通常应该重用 UITableViewCell 对象。表视图维护数据源标记为重用的 UITableViewCell 对象的队列或列表。当被要求为表视图提供新单元格时,从数据源对象调用此方法。如果现有单元格可用,则此方法将其排队,或者基于先前注册的类或 nib 文件创建一个新单元格。
重点 : 在调用此方法之前,必须使用 registerNib: forCellReuseIdentifier: 或 registerClass: forCellReuseIdentifier: 方法注册类或 nib 文件。
如果为指定的标识符注册了一个类并且必须创建一个新单元格,则此方法通过调用其 initWithStyle: reuseIdentifier: method 来初始化该单元格。对于基于 nib 的单元格,此方法从提供的 nib 文件加载单元格对象。如果现有单元可以重用,则此方法将调用该单元的 prareForReuse 方法。
这是我的新 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
,我只是想改变默认类型,就像我在 iOS6之前可以做的那样。看起来很奇怪,苹果公司提供了增强的方法,但是只有很少的文档来支持它们的实现。
有没有人掌握了这一点,或遇到了类似的问题? 我正在努力寻找任何合理的信息在所有。