使用没有Style的reuseIdentifier自定义UITableViewCell?

Ear*_*rey 3 objective-c uitableview ios

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

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

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

问题是需要指定样式.nil它不能放在那里,它抱怨.但我不需要Apple的任何风格,我显然有自己的风格,如果我想要一个股票风格,为什么我会做自定义设计.我只需要指定reuseIdentifier.

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

Mar*_*n R 9

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

@interface MyCustomCell ()
@property(nonatomic, readwrite, copy) NSString *reuseIdentifier;
@end
Run Code Online (Sandbox Code Playgroud)

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

@implementation MyCustomCell
@synthesize reuseIdentifier = _myCustomCellReuseIdentifier;
Run Code Online (Sandbox Code Playgroud)

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

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