UITableViewCell外观不会改变textLabel字体

时间:2014-02-26 12:05:41

标签: ios uitableview uikit appearance

我的didFinishLaunchingWithOptions函数中包含以下代码:

[[[UITableViewCell appearance] textLabel]setFont:[UIFont fontWithName:@"someFont" size:12]];

但由于某些原因,这不会改变我的表格单元格中的文本。

如果在表委托函数cellForRowAtIndexPath中添加

cell.textLabel.font = [UIFont fontWithName:@"someFont" size:12];

它确实将字体更改为我想要的字体。

有什么想法吗?

1 个答案:

答案 0 :(得分:9)

使用外观代理不支持设置font的{​​{1}}属性。

您可以通过查看UITableViewCell的该类的头文件来确定支持哪些属性。

看看UI_APPEARANCE_SELECTOR,您会看到只支持UITableViewCell.h(以及separatorInset,因为它的超类backgroundColor支持这一点:

UIView


来自UIAppearance protocol reference:

  

要支持外观自定义,类必须符合@property (nonatomic) UIEdgeInsets separatorInset NS_AVAILABLE_IOS(7_0) UI_APPEARANCE_SELECTOR; // allows customization of the separator frame协议,相关的访问者方法必须标有UIAppearanceContainer