【发布时间】:2012-12-19 16:49:51
【问题描述】:
我不知道这是否特定于 UITableViewCells 而是一般用于 UIViews(我相信),但我注意到一个单元格的 问题。
如前所述,我有一个自定义的UITableViewCell 子类,它在使用指定的 init 初始化时从 xib 加载自身:
- (id)initWithReuseIdentifier:(NSString *)reuseIdentifier
{
NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"MyCell" owner:nil options:nil];
self = nib[0];
if (self) {
// Initialization code
_reuseIdentifier = reuseIdentifier;
}
return self;
}
它有一个UILabel 作为出口,我在awakeFromNib 方法中设置了它的一些属性:
- (void)awakeFromNib{
[super awakeFromNib];
self.labelLeft.textColor = [UIColor grayColor];
self.labelLeft.font = [UIFont boldSystemFontOfSize:15.0f];
}
关键是,标签不保留 textColor 和字体,我不明白为什么。awakeFromNib 被调用并且插座连接正确,因为我可以设置文本。
在我在UITableViewDataSource 中设置他的文本后,我可以通过设置这些属性使其工作,但我觉得这不是正确的方法,我想了解为什么这不起作用。
问题:
为什么它不保留 Font 和 Textcolor,我该怎么做才能让它以正确的方式工作?
【问题讨论】:
-
“从 xib 加载自身” - 这就是问题所在。我敢打赌,如果您以编程方式创建单元格,它会起作用。
-
是的,如果我全部通过代码完成,它肯定会奏效。但我想知道为什么这不起作用。
-
嗯,它有点工作。它只是不保留颜色和字体...
-
我也有同样的问题。是的,我可以在单元格的每个更新方法中设置新的字体和颜色,但我不会只设置一次。
-
我找到了问题所在。尝试在答案中解释更多细节。
标签: ios uitableview xib awakefromnib