用于自定义 UITableViewCell 的 awakeFromNib 与 initWithFrame
Posted
技术标签:
【中文标题】用于自定义 UITableViewCell 的 awakeFromNib 与 initWithFrame【英文标题】:awakeFromNib vs. initWithFrame for custome UITableViewCell 【发布时间】: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];
【问题讨论】:
【参考方案1】:创建 Xib 时,不会使用 initWithFrame。但是,将使用 initWithCoder。因此,您可以在其中进行额外的实例化。但是,在 awakeFromNib 中初始化其他控件也没有错。
编辑:针对您在下面的第一条评论,请查看此相关问题:
Should I be using awakeFromNib or initWithCoder here?
【讨论】:
是 initWithCoder 还是 awakeFromNib 是首选?你只用过 1 还是两者都用过?哪一个都有缺点?以上是关于用于自定义 UITableViewCell 的 awakeFromNib 与 initWithFrame的主要内容,如果未能解决你的问题,请参考以下文章
用于自定义 UITableViewCell 的 awakeFromNib 与 initWithFrame
UIButton 不适用于自定义 UITableViewCell (Swift)
带有用于突出显示的图像的自定义 UITableViewCell
用于登录输入的自定义 uitableviewcell - 用户名和密码