【问题标题】:Custom UITableViewCell with xib file and custom constructor带有 xib 文件和自定义构造函数的自定义 UITableViewCell
【发布时间】:2013-10-22 20:03:46
【问题描述】:

关于自定义 UITableViewCell 的一个问题。

我想要一个带有 xib 文件的 UICustomTableViewCell 来设计这个单元格。

当我创建我的单元格时,我还会使用自定义构造函数来传递一些参数。例如:

initWithMyParamterA:(NSString*) aParameterA andParameterB:(NSString*) aParameterB;

我不希望使用属性来传递这个参数。

那么,我怎样才能同时实现这个构造函数loadNibName(加载xib文件)和默认构造函数:

initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier

如何混合这些? :)

【问题讨论】:

    标签: ios objective-c uitableview xib


    【解决方案1】:

    我已经通过一个类别扩展了 UIView 类,并添加了一个使用类名创建 XIB 的方法

    + (id) viewWithDefaultXib
    {
        NSArray *topLevelObjects = [[NSBundle mainBundle] loadNibNamed:NSStringFromClass([self class]) owner:self options:nil];
    return [topLevelObjects count] ? [topLevelObjects objectAtIndex:0] : nil;
    }
    

    您可以在类中定义以下方法来初始化对象。 - (id) initWithCoder:(NSCoder *)aCoder 更多信息https://developer.apple.com/library/ios/documentation/cocoa/reference/foundation/Protocols/NSCoding_Protocol/Reference/Reference.html

    【讨论】:

      【解决方案2】:

      从 xib 未归档的视图将始终使用 initWithCoder: 进行初始化,您必须重写该方法才能从 nib 初始化自定义视图。

      Nib file docs

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-04-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多