我正在为我公司的客户制作应用程序。整个应用程序已完成,并且已经在应用程序商店中。但是现在他希望我将标签/文本视图的字体或任何有文本的地方更改为自定义文本。有什么方法可以在一个地方更改字体,以便在应用程序的任何地方都可以更改?
4 回答
据我所知,没有神奇的解决方案可以全局更改字体。你可以做小班来做到这一点。例如,您可以UILabel
通过创建自定义UILabel
类并在 和 更改initWithFrame
字体来更改所有字体awakeFromNib
。所以看起来你可能必须为应用程序中的所有 ui 元素执行此操作。
但是,嘿,优点是。下次更改字体将是一件轻而易举的事。我们都知道客户公司如何改变主意...
source -如何为整个应用程序设置自定义字体?
我刚刚发现[[UILabel appearance] setFont:[UIFont fontWithName:@"Open Sans" size:20.0]];
效果很好
您可以在项目的 .pch 文件中为字体编写宏(它将仅替换字体名称或 UIFont 对象)。
#define TextFont [UIFont fontWithName:@"Helvetica" size:13]
并在所有课程中使用它。但是您使用 IB 或故事板放置的所有文本,您必须通过 IB 或故事板手动更改所有字体。您现在可以为所有 UI 元素创建 IBOutelets,以便下次使用宏以编程方式轻松更改字体。
在您的应用程序委托中创建一个可供所有应用程序类访问的 NSString。这个 NSString 将是你的字体的名称。现在浏览您的应用程序并将所有文本的字体更改为 NSString 中的名称。
label.font = [UIFont fontWithName:appDelegate.fontName size:12];
只需将 NSString 设置为您在应用程序委托中选择的任何字体,其他所有内容都会更新为该字体。这应该比创建和实现 UILabel 子类更容易,因为您只想更改一个属性的一部分。