我试图使用Open Sans系列中的字体。我将字体添加到我的Xcode项目中,我检查它们是否已添加到我的应用程序的资源包中,并将字体添加到我的Info.plist文件中。
当我在Interface Builder中编辑XIB时,在字体下拉菜单中选择自定义时,我可以在UILabel
上使用Open Sans字体。字体在Interface Builder中的预览中正确呈现,但是当我在设备上启动应用程序时,字体不会应用于标签。
我尝试以编程方式设置字体,但这也没有用。而且我没有收到任何警告或错误。
我忘记了什么能够使用自定义字体?
运行iOS7的iPad Air和运行iOS8的iPhone 6上的行为相同。
答案 0 :(得分:5)
转到目标 - >构建阶段 - >复制捆绑资源,在那里检查字体文件是否存在,如果没有按加号按钮并手动添加。有时字体文件不会自动添加到捆绑资源。
希望这有帮助。
答案 1 :(得分:3)
只需确保捆绑包中的所有字体都可用,尝试打印所有字体并检查您是否使用了正确的名称。 您可以使用app delegate的didFinishLaunchingWithOptions方法中的以下代码轻松完成此操作:
for (NSString *familyName in [UIFont familyNames]) {
NSLog(@"Family Name : %@", familyName);
for (NSString *fontName in [UIFont fontNamesForFamilyName:familyName]) {
NSLog(@"\tFont Name : %@", fontName);
}
}
或在Swift中:
if let familyNames = UIFont.familyNames() as? [String] {
for familyName in familyNames {
println("Family : " + familyName)
if let fontNames = UIFont.fontNamesForFamilyName(familyName) as? [String] {
for fontName in fontNames {
println("\tFont : " + fontName)
}
}
}
}
swift代码不是最有效的,但应该用于检查字符串中是否存在字体。
答案 2 :(得分:2)
答案 3 :(得分:1)
确保您已在Info.plist中添加了字体。有一个名为"由应用程序提供的字体"必须包含您要使用的所有字体文件。
答案 4 :(得分:1)
我只是遇到了同样的问题...仍然有点......我想在同一个标签中混合字体,但是没有用... 解决方法是我尝试更改标签的IB属性检查器尝试将文本下拉列表从属性更改为普通...字体确实在设备中更改...所以我认为这是Xcode中的错误。
答案 5 :(得分:0)
您是否正确地将字体添加到info.plist中,以确定字体拼写的方式是否包含其文件扩展名?例如,OpenSans.ttf与opensans.ttf或opensans不同。要100%确定文件名,请右键单击您的字体文件,单击“获取信息”,然后选中“全名”说明。 要以编程方式添加字体,请关闭文件扩展名。例如,
myLabel.font = [UIFont fontWithName:@"OpenSans" size:32];
答案 6 :(得分:0)
如果您使用的是webfont,请下载.ttf文件并将其放入您的项目中。如果需要,复制项目上的复选标记
接下来在info plist上添加此内容
<key>UIAppFonts</key>
<array>
<string>Your fontname.ttf</string>
<string>Bakersfield Bold.ttf</string>
</array>
现在看看字体系列名称。您也可以在字体文件中找到。从您下载的地方,您也将到达那里。就像我添加的字体ttf文件名是: Bakersfield Bold.ttf 这个字体名称是: Bakersfield-Bold 多数民众赞成快乐编码。