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
,它就可以工作了。完全有道理!