我不知道这是否针对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
设置他的文本后通过设置这些属性来使其起作用,但是我觉得这是正确的方法,我想了解为什么这不起作用。
问题:
为什么它不保留字体和文本彩色,我该怎么做才能使它以正确的方式工作?
我在.Nib
s上加载的所有标签都有相同的问题。然后我发现问题在UIAppearance
中。我的AppDelegate
中有以下行:
+ (void)styleApplication {
[[UILabel appearance] setFont:[MGStylesheet defaultLightFontOfSize:17]];
}
此方法更新我的应用程序中的所有字体,并且所有字体都可以正常工作,直到我从.Nib
开始加载UIView
。当我删除此内容时,一切都开始按预期工作。
设置笔尖文件中标签的属性。如果将接口配置拆分到不同的位置,则仅会导致trubble。
如果您不想这样做,将标签的配置移至viewDidLoad: