我想制作一个应用程序以包含自定义字体以渲染文本,加载它,然后与标准的UIKit
元素(如UILabel
)一起使用。这是否可行?
我想制作一个应用程序以包含自定义字体以渲染文本,加载它,然后与标准的UIKit
元素(如UILabel
)一起使用。这是否可行?
首先将.odt格式的字体添加到资源中,本例中我们将使用DINEngschriftStd.otf,然后使用以下代码将字体分配给标签。
[theUILabel setFont:[UIFont fontWithName:@"DINEngschriftStd" size:21]];
调用以下代码以确保项目中已加载您的字体:
NSLog(@"Available Font Families: %@", [UIFont familyNames]);
我将这个页面上的一些建议结合起来,在iOS 5上为自己找到了适用的方法。
首先,您需要将自定义字体添加到您的项目中。然后,您需要遵循@iPhoneDev的建议,将字体添加到您的info.plist文件中。
在您完成这些步骤之后,以下操作可以生效:
UIFont *yourCustomFont = [UIFont fontWithName:@"YOUR-CUSTOM-FONT-POSTSCRIPT-NAME" size:14.0];
[yourUILabel setFont:yourCustomFont];
然而,您需要知道您字体的Postscript名称。只需按照@Daniel Wood的建议,在FontBook中按下command-i即可。
然后,享受您的自定义字体。
将所需字体添加到您的项目中(就像添加图像一样,只需拖动到Xcode),确保它们针对您的项目
添加此方法并加载自定义字体(建议在appDelegate didFinishLaunchingWithOptions
中完成)。
func loadFont(filePath: String) {
let fontData = NSData(contentsOfFile: filePath)!
let dataProvider = CGDataProviderCreateWithCFData(fontData)
let cgFont = CGFontCreateWithDataProvider(dataProvider)!
var error: Unmanaged<CFError>?
if !CTFontManagerRegisterGraphicsFont(cgFont, &error) {
let errorDescription: CFStringRef = CFErrorCopyDescription(error!.takeUnretainedValue())
print("Unable to load font: %@", errorDescription, terminator: "")
}
}
使用示例:
if let fontPath = NSBundle.mainBundle().pathForResource("My-Font", ofType: "ttf"){
loadFont(fontPath)
}
使用字体:
UIFont(name: "My-Font", size: 16.5)
CTFontManagerRegisterGraphicsFont
函数,给它一个带有字体数据的缓冲区。然后,它就可以像旧方法一样被UIFont
和Web视图使用。以下是来自该链接的示例代码:NSData *inData = /* your font-file data */;
CFErrorRef error;
CGDataProviderRef provider = CGDataProviderCreateWithCFData((CFDataRef)inData);
CGFontRef font = CGFontCreateWithDataProvider(provider);
if (! CTFontManagerRegisterGraphicsFont(font, &error)) {
CFStringRef errorDescription = CFErrorCopyDescription(error)
NSLog(@"Failed to load font: %@", errorDescription);
CFRelease(errorDescription);
}
CFRelease(font);
CFRelease(provider);
是的,你可以在应用程序中使用自定义字体。
按照以下步骤:
将自定义字体文件添加到项目的支持文件夹中。
在Info.plist文件中添加一个名为UIAppFonts的键。
将此键设置为数组。
对于每种字体,将完整的字体文件名称(包括扩展名)作为UIAppFonts数组的项输入。
保存Info.plist。现在,在您的应用程序中,您可以简单地调用[UIFont fontWithName:@"your Custom font Name" size:20]来获取与您的UILabel一起使用的自定义字体。如果应用后没有得到正确的字体,请双击自定义字体,仔细查看顶部的字体名称,并复制此字体,粘贴在此处[UIFont fontWithName:@"here past your Custom font Name" size:20]
我希望你能得到正确的答案。
你可以在应用程序中使用自定义字体
步骤如下:
Info.plist
文件中添加一个名为UIAppFonts的键。Info.plist
[UIFont fontWithName:@"your Custom font Name" size:20]
就可以获取自定义字体以与您的UILabels
一起使用如果应用后未能正确获取字体,则双击自定义字体,仔细查看顶部字体名称,并将其复制,粘贴到此处 [UIFont fontWithName:@"这里粘贴您的自定义字体名称" size:20]
,希望您能得到正确的答案
[self.labelOutlet setFont:[UIFont fontWithName:@"Sathu" size:10]];
这些是正确的字体。请不要使用任何其他hackish方式。如果您仍然在寻找字体名称并添加它们方面遇到问题,这里有一个教程 -