3

在我的表格视图中,我需要一堆(5-6 种)不同的单元格。所有项目都有相同的视觉布局,但在内容方面(标签名称、图片和颜色),它们有很大不同。

所以我有一个 CustomUITableViewCell 基类,它是在 Interface Builder 中设计的,具有这种通用设计。这个 CustomUITableViewCell 类服务器作为一堆单元子类的基类。我使用工厂模式从工厂类的类方法生成这些子类。这些子类没有 xib。他们为什么会有共同的设计。

现在的问题是,对于每个子类,我需要一个不同的重用标识符。所以,有人会认为让我们覆盖每个子类的默认初始化程序,并在其中调用另一个初始化程序,initWithStyle:reuseIdentifier:.

问题是它需要指定样式。我不能放在nil那里,它抱怨。但我不需要苹果的任何款式,我明明有我自己的款式,如果我想有一个库存款式,我为什么要定制设计。我只需要指定reuseIdentifier。

如果它是只读属性,如何分配重用标识符,并且似乎提供它的唯一方法是通过初始化程序?

4

1 回答 1

9

前段时间我遇到了类似的问题。我的解决方案是在(子类的)实现文件中重新声明reuseIdentifier为读写属性UITableViewCell

@interface MyCustomCell ()
@property(nonatomic, readwrite, copy) NSString *reuseIdentifier;
@end

并使用不同的实例变量合成属性:

@implementation MyCustomCell
@synthesize reuseIdentifier = _myCustomCellReuseIdentifier;

现在您可以在自定义单元格的 init 方法中进行分配self.reuseIdentifier

至少它在我的情况下有效,也许你可以使用它......

于 2012-10-04T14:53:43.510 回答