扩展UIFont,使用命名字体构造函数,因此您不必在应用中硬编码字体名称。还为自定义字体提供相同的功能。
在您的PCH文件中包含 UIFont+NTNamedFonts.h。一旦添加进去,您将能够自动完成任何内置字体。您可以设置字体如下
self.anyLabel.font = [UIFont avenirBookOfSize:12.0];
此外,每个字体都有一个NS_AVAILABLE属性,增加(目前支持iOS 6.0和iOS 7.0。)
为了支持自定义字体,NTNamedFonts可以帮助您生成所需的.h/m文件。只需将以下内容添加到您的didFinishLaunchingWithOptions
中
[UIFont detectCustomFontsShowingAlert:YES];
如果检测到任何自定义字体已被添加或删除,则将UIFont+CustomFonts.h
和UIFont+CustomFonts.m
的内容输出到日志。只需将内容复制并粘贴到您的项目中即可!detectCustomFontsShowingAlert:
仅在DEBUG
构建中执行任何操作,因此您可以安全地将此代码留在您的代码中,而不用担心会对应用商店构建带来任何性能惩罚。
这很简单。如果您使用cocoapods,请在podfile中添加'pod NTNamedFonts'。如果您在做老式的事情,请将UIFont+NTNamedFonts.h和UIFont+NTNamedFonts.m添加到您的项目中并享受它!
NTNamedFontsBootstrap项目包含用于构建此项目的代码。它检测内置字体并构建字体名称到版本的映射。此外,它还用于在UIFont+NTNamedFonts.h中生成内置字体声明
我已经为iOS 6.0和iOS 7.0映射了字体版本。如果您正在支持较旧的iOS版本,并且希望NS_AVAILABLE属性反映该版本,则可以使用引导代码帮助您完成。运行应用并执行用于测试的版本的updateBuiltinFontVersionsWithVersion
。将输出复制并粘贴到UIFont+NTNamedFonts.m
中的builtinFontVersions
方法中,然后再次运行,这次运行buildHeader
。将这些结果粘贴到UIFont+NTNamedFonts.h
中命名的字体声明上。当iOS的新版本发布时,相同的策略可用于添加新字体。
如果您费心去做,请务必将拉请求发给我。分享即关爱。