iOS应用程序中的字体随处可见

时间:2012-12-20 04:39:55

标签: iphone objective-c ios ipad fonts

我正在为我公司的客户制作应用程序。整个应用程序已经完成,已经在应用程序商店中。但现在他希望我将标签/文本视图的字体或任何有文本的字体更改为自定义文本。有没有什么办法可以在一个地方更改字体,以便它在应用程序的各处变化?非常感谢您的紧急帮助。

4 个答案:

答案 0 :(得分:4)

据我所知,没有神奇的解决方案可以全局更改字体。你可以做小班做这个。例如,您可以通过创建自定义UILabel类并更改UILabelinitWithFrame处的字体来更改所有awakeFromNib字体。因此,看起来您可能必须为应用中的所有ui元素执行此操作。

但是,嘿,优点是。下一次改变字体将是一件轻而易举的事。我们都知道客户公司如何改变他们的想法......

来源 - How do I set a custom font for the whole application?

答案 1 :(得分:2)

我刚刚发现[[UILabel appearance] setFont:[UIFont fontWithName:@"Open Sans" size:20.0]];效果很好

答案 2 :(得分:0)

在您的app委托中创建一个可供所有应用程序类访问的NSString。此NSString将是您的字体的名称。现在浏览您的应用程序并将所有文本的字体更改为NSString中的名称。

label.font = [UIFont fontWithName:appDelegate.fontName size:12];

只需将NSString设置为您在app delegate中选择的任何字体,其他所有字体都将更新为该字体。这应该比创建和实现UILabel子类更容易,因为您只想更改一个属性的一部分。

答案 3 :(得分:0)

您可以在项目的.pch文件中编写字体宏(它将只替换字体名称或UIFont对象)。

#define TextFont [UIFont fontWithName:@"Helvetica" size:13]

并在所有课程中使用它。但是您使用IB或故事板放置的所有文本,您必须手动更改所有IB或故事板的字体。您现在可以为所有UI元素创建IBOutelet,以便下次使用宏以编程方式更改字体时很容易。