如何将自定义字体添加到 iPhone 应用程序?

发布于 2024-09-25 20:19:09 字数 83 浏览 2 评论 0原文

我必须做什么才能获取具有自定义字体的 UIFont 对象?我记得 Info.plist 文件中也发生了一些事情。

支持哪些字体文件格式?

What must I do to get an UIFont object with a custom font? I remember there was also something going on in the Info.plist file.

What font file formats are supported?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

千仐 2024-10-02 20:19:09

要将自定义字体添加到您的应用程序,您可以将它们添加到 XCode 项目。然后,修改 application-info.plist 文件。将关键应用程序提供的字体添加到新行。为您添加的每种字体添加一项。

它支持 TTF 和 OpenType 字体。需要注意的是,它会在应用程序启动时加载并解析所有字体,因此会减慢初始加载时间。

我相信这仅适用于 iOS 3.2 或更高版本。

To add a custom font to your application, you can add them to the XCode project. Then, modify the application-info.plist file. Add the key Fonts provided by application to a new row. Add one item for each font you have added.

It supports both TTF and OpenType fonts. One caveat is that it loads and parses all fonts in the startup of your app, so it will slow down the initial load time.

I believe this is only available in iOS 3.2 or later.

我很OK 2024-10-02 20:19:09

编程方式(Swift)

将字体添加到项目的资源文件夹中

并添加此功能:

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)
    }
}

使用示例:

if let fontPath = NSBundle.mainBundle().pathForResource("MyCustomFont", ofType: "ttf") {
    loadFont(fontPath)
}

let myFont = UIFont(name: "MyCustomFont", size: CGFloat(18))

Programming way (Swift)

Add the fonts to your project at the resource folder

And add this function:

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)
    }
}

Use example:

if let fontPath = NSBundle.mainBundle().pathForResource("MyCustomFont", ofType: "ttf") {
    loadFont(fontPath)
}

let myFont = UIFont(name: "MyCustomFont", size: CGFloat(18))
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文