我不知道这是否特定于 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
被调用并且 socket 连接正确,因为我可以设置文本。
在 UITableViewDataSource
中设置他的文本后,我可以通过设置这些属性来使其工作,但我不觉得这是正确的方法,我想了解为什么这不起作用。
问题:
为什么它不保留 Font 和 Textcolor,我该怎么做才能使其以正确的方式工作?
最佳答案
我从 .Nib
加载的所有标签都存在同样的问题。然后发现问题出在UIAppearance
。我的 AppDelegate
中有以下行:
+ (void)styleApplication {
[[UILabel appearance] setFont:[MGStylesheet defaultLightFontOfSize:17]];
}
此方法更新我的应用程序中的所有字体,并且一切正常,直到我开始从 .Nib
加载我的 UIView
。当我删除它时,一切都开始按预期工作。
关于ios - Font 和 textColor 不见了 - 另一个 UITableViewCell awakeFromNib,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13957156/