4

我不知道这是否是特定的,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但我不觉得这是正确的方式,我想了解为什么这不起作用。

问题
为什么它不保留字体和文本颜色,我该怎么做才能让它以正确的方式工作?

4

2 回答 2

2

我从.Nib's 加载的所有标签都有同样的问题。然后我发现问题出在UIAppearance. 我在我的以下行AppDelegate

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

此方法更新我的应用程序中的所有字体,并且一切正常,直到我开始UIView.Nib. 当我删除它时,一切都开始按预期工作。

于 2013-09-13T16:00:17.733 回答
-1

在 nib 文件中设置标签的属性。如果您将接口配置拆分到不同的地方,这只会导致崩溃。

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

于 2013-03-05T18:24:54.713 回答