我已将UITableViewCell
分包并将其注册到我的UITableView
,如下所示:
[self.tableView registerClass:[MyTableViewCell class] forCellReuseIdentifier:@"cell"];
但是我为这些单元格创建了自己的样式,如下所示:
typedef enum : NSInteger {
MyTableViewCellStyleSent,
MyTableViewCellStyleReceived
} MyTableViewCellStyle;
然后使用如下:
-(MyTableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
MyTableViewCell *cell = (MyTableViewCell *)[tableView dequeueReusableCellWithIdentifier:@"cell"];
}
我希望initWithStyle:
方法使用枚举,而不是“默认”UITableViewCellStyle
。
来自Apple Docs:
如果您为指定的标识符注册了一个类并且必须创建一个新的单元格,则此方法通过调用其initWithStyle:reuseIdentifier:方法来初始化该单元格。对于基于nib的单元格,此方法从提供的nib文件加载单元格对象。如果现有单元可用于重用,则此方法将调用单元的prepareForReuse方法。
但我无法弄清楚如何使用我的新枚举来调用initWithStyle
。
采用这种方法的正确方法是什么?
答案 0 :(得分:0)
您通常不会创建自己的样式,如果以这种方式将可重复使用的单元格出列,则不会调用initWithStyle:
。
您应该使用不同的名称将自己的“样式”属性添加到MyTableViewCell
,然后在将单元格出列后设置该属性。
如果单元格的设计不同,另一种方法是使用不同的单元类。如果共享大量代码,它们可以有一个共同的基类。