在iPhone App中如何在整个App中更改字体样式?

时间:2011-01-31 04:43:58

标签: iphone objective-c cocoa-touch ios4

在iPhone应用程序中,我想在整个应用程序中更改fontstyle(在整个应用程序中) 那么有没有更快的方法做到这一点。假设我希望以“影响”的方式显示所有字体,

如何在整个应用中设置fontstyle“影响力”?

请帮助和建议。

3 个答案:

答案 0 :(得分:6)

SDK不允许您在应用程序范围内更改字体设置。如果要更改默认字体,则必须基于每个对象进行更改。

另外,你确定这是一个好主意吗?将默认字体更改为“影响”可能没有您正在寻找的“影响”...

答案 1 :(得分:2)

我通常使用Settings.bundle,因此用户可以选择他们希望在整个应用中看到的字体。正如Dave建议的那样,这是基于每个对象完成的。

每个对象:

[myLabel setFont:[UIFont fontWithName:[[NSUserDefaults standardUserDefaults] stringForKey:@"kFontStyle"] 
                                 size:[[NSUserDefaults standardUserDefaults] integerForKey:@"kFontSize"]]];

在UIWebView中:

这是我在将HTML加载到UIWebView

时如何使用它们的示例
header = [[NSString stringWithFormat:@"<html><head><style>body{background-color:transparent;font-family:%@;font-size:%@px;color:#960000;}</style></head><body><div align='left'><center><img width='290' height='56' src='0%i.jpg'></center><br>",[[NSUserDefaults standardUserDefaults] stringForKey:@"kFontStyle"],[[NSUserDefaults standardUserDefaults] int stringForKey:@"kFontSize"],courseIndex] retain];
footer = @"</font></font></font></div></body></html>";
[myWebView loadHTMLString:[NSString stringWithFormat:@"%@%@%@",header,[courseItem objectForKey:@"Content"],footer] baseURL:[NSURL fileURLWithPath:bundle]];

答案 2 :(得分:1)

您可以继承UIFont并覆盖systemFontWithSize:等方法以返回自定义字体。您甚至可以在UIFont的类别中执行此操作。我确实同意Dave,小心使用自定义字体。