Ios 字体和文本颜色消失了-另一个UITableViewCell从NIB唤醒

Ios 字体和文本颜色消失了-另一个UITableViewCell从NIB唤醒,ios,uitableview,xib,awakefromnib,Ios,Uitableview,Xib,Awakefromnib,我不知道这是否是特定于UITableViewCells的,但对于UIViews(我相信)来说,这是一般性的,但我注意到了单元格的问题 如前所述,我有一个自定义的UITableViewCell子类,当使用指定的init初始化xib时,它会从xib加载自己: - (id)initWithReuseIdentifier:(NSString *)reuseIdentifier { NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"MyCel

我不知道这是否是特定于
UITableViewCells
的,但对于
UIViews
(我相信)来说,这是一般性的,但我注意到了单元格的问题


如前所述,我有一个自定义的
UITableViewCell
子类,当使用指定的init初始化xib时,它会从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];
}
关键是,标签没有保留文本颜色和字体,我不明白为什么。
awakeFromNib
被调用,插座连接正确,因为我可以设置文本

UITableViewDataSource
中设置他的文本后,我可以通过设置这些属性使其工作,但我觉得这不是正确的方法,我想了解为什么这样做不起作用

问题

为什么它不保留字体和文本颜色?我可以做些什么使它以正确的方式工作?

在nib文件中设置标签的属性。如果将接口配置拆分到不同的位置,则只会导致truble


如果您不想这样做,请将标签的配置移动到
viewdiload:

.Nib
加载的所有标签都有相同的问题。然后我发现问题出在
ui外观中。我的
AppDelegate
中有以下行:

+ (void)styleApplication {
    [[UILabel appearance] setFont:[MGStylesheet defaultLightFontOfSize:17]];
}

这个方法会更新我的应用程序中的所有字体,并且在我开始从
.Nib
加载我的
UIView
之前,所有字体都可以正常工作。当我删除它时,一切都开始按预期工作。

“它从xib加载本身”-问题出在这里。我敢打赌,如果你用编程的方式创建这个单元格,它会工作的。是的,如果我用代码来完成它,它肯定会工作的。但我想知道为什么这不起作用。它有点起作用。它只是没有保留颜色和字体…我有同样的问题。是的,我可以在单元格的每个更新方法中设置新的字体和颜色,但我不会只设置一次。我发现了问题所在。试着在回答中解释更多细节。我的问题是为什么它不起作用,而不是我还能做什么。是的,当然!调用super后,只需将代码放入
-layoutSubviews
,它就可以工作了。完全有道理!