【问题标题】:awakeFromNib vs. initWithFrame for custome UITableViewCell用于自定义 UITableViewCell 的 awakeFromNib 与 initWithFrame
【发布时间】:2014-07-07 23:41:29
【问题描述】:

我需要制作一个自定义 UITableViewCell,所以我创建了一个带有相关 nib 文件的子类。

我需要添加一些子视图。使用 nib 文件时,awakeFromNib 会替换 initWithFrame 吗?我在我的cellForRowAtIndexPath 方法中使用[[NSBundle mainBundle] loadNibNamed:

我会像这样使用 initWithFrame 吗?

- (id)initWithFrame:(CGRect)frame
{
    if ((self = [super initWithFrame:frame]))
    {
        self.tableView = [[UITableView alloc] initWithFrame:CGRectMake(0, 0, 100, 320)]

        [self addSubview:self.horizontalTableView];
    }

    return self;
}

还是像这样在 awakeFromNib 中这样做

- (void)awakeFromNib
{
   self.tableView = [[UITableView alloc] initWithFrame:CGRectMake(0, 0, 100, 320)]

            [self addSubview:self.horizontalTableView];
}

【问题讨论】:

    标签: ios awakefromnib


    【解决方案1】:

    创建 Xib 时,不会使用 initWithFrame。但是,将使用 initWithCoder。因此,您可以在其中进行额外的实例化。但是,在 awakeFromNib 中初始化其他控件也没有错。

    编辑:针对您在下面的第一条评论,请查看此相关问题:

    Should I be using awakeFromNib or initWithCoder here?

    【讨论】:

    • 是 initWithCoder 还是 awakeFromNib 是首选?你只用过 1 还是两者都用过?哪一个都有缺点?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多