我正在尝试找出UITableViewCellStyle
在iOS 6中使用新方法时如何设置UITableView
。
以前,当创建一个UITableViewCell
I时,我将更改UITableViewCellStyle
枚举以在调用时创建不同类型的默认单元格,initWithStyle:
但从我可以收集的信息来看,情况已不再如此。
Apple文档UITableView
指出:
返回值:具有关联的重用标识符的UITableViewCell对象。此方法始终返回有效的单元格。
讨论:出于性能原因,表视图的数据源通常在为其表tableView:cellForRowAtIndexPath:方法中的行分配单元格时应重用UITableViewCell对象。表视图维护数据源已标记为可重复使用的UITableViewCell对象的队列或列表。当要求为表格视图提供新的单元格时,请从数据源对象中调用此方法。如果有一个可用的单元格,此方法将使该单元出队,或者根据您先前注册的类或nib文件创建一个新的单元格。
重要说明:在调用此方法之前,必须使用registerNib:forCellReuseIdentifier:或registerClass:forCellReuseIdentifier:方法注册类或nib文件。
如果您为指定的标识符注册了一个类,并且必须创建一个新的单元格,则此方法通过调用其initWithStyle:reuseIdentifier:方法来初始化该单元格。对于基于笔尖的单元格,此方法从提供的笔尖文件中加载单元格对象。如果现有单元可供重用,则此方法改为调用单元的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之前一样。苹果提供增强的方法但支持其实现的文档最少的情况似乎很奇怪。
有谁掌握了这个,或者遇到了类似的问题?我正在努力寻找所有合理的信息。
UITableViewCell
以获取其他默认样式却很麻烦,因为它只会创建不必要的文件。感谢您的评论并证实我的怀疑。