我不知道这是否特定于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.当我删除它时,一切都按预期开始工作.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。