ios – 字体和textColor消失了 – 另一个UITableViewCell awakeFromNib

我不知道这是否特定于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,我该怎么做才能让它以正确的方式工作?

解决方法

对于从.Nib加载的所有标签,我遇到了同样的问题.然后我发现问题出在UIAppearance上.我的AppDelegate中有以下行:

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

这个方法更新了我的应用程序中的所有字体,一切正常,直到我开始从.Nib加载我的UIView.当我删除它时,一切都按预期开始工作.

相关文章

当我们远离最新的 iOS 16 更新版本时,我们听到了困扰 Apple...
欧版/美版 特别说一下,美版选错了 可能会永久丧失4G,不过只...
一般在接外包的时候, 通常第三方需要安装你的app进行测...
前言为了让更多的人永远记住12月13日,各大厂都在这一天将应...