2014-02-26 35 views
4

我在didFinishLaunchingWithOptions功能如下代码:UITableViewCell的外观不改变为textLabel字体

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

但出于某种原因,这并没有改变我的表格单元格中的文本。

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

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

它做的字体更改为我所希望的一个。

任何想法?

+0

您定位的是哪个版本的iOS? – Dan

+0

你使用自定义字体吗? – ignotusverum

+0

@anonymous是的我正在使用自定义字体。 – oopsi

回答

7

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

您可以通过在UI_APPEARANCE_SELECTOR的那个类的头文件中查看支持哪些属性。

看看UITableViewCell.h,你会看到只有separatorInset支持(和backgroundColor因为这是由它的父类的支持,UIView):

@property (nonatomic) UIEdgeInsets separatorInset NS_AVAILABLE_IOS(7_0) UI_APPEARANCE_SELECTOR; // allows customization of the separator frame


UIAppearance protocol reference:

为了支持外观定制,一个类必须符合UIAppearanceContainer协议和相关访问方法必须使用UI_APPEARANCE_SELECTOR进行标记。

+0

为什么要投票?这是正确的答案,但如果你认为它可以改进,请告诉我如何! –

+0

谢谢!但我现在正在看UITableViewCell.h,我看不到任何UI_APPEARANCE_SELECTOR – oopsi

+0

嗯。我将直接从'UITableViewCell.h'复制的代码粘贴到我的答案中...是否帮助您找到它? –

相关问题