无缝、动态地下载并注册定制字体(Google 字体或其它字体资源)到应用内

797 阅读1分钟
原文链接: github.com

CI Status Version License Platform

Introduction

In brief, Inkwell is a font library to use custom fonts on the fly. Inkwell takes responsibilities for:

  • Downloading fonts from Google Fonts or custom resources.
  • Registering custom fonts to the system.
  • Loading and using custom fonts dynamically and seamlessly.

Example

To run the example project, clone the repo, and run pod install from the Example directory first.

alt tag

Installation

CocoaPods

Install CocoaPods if need be.

$ gem install cocoapods

Add Inkwell in your Podfile.

use_frameworks!

pod 'Inkwell'

Then, run the following command.

$ pod install

Carthage

Not yet supported.

Usage

Firstly, set Google API key in the app delegate.

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
    Inkwell.shared.APIKey = "paste your key here"
}

Now you are ready to use Inkwell with only one API to remember.

let font = Font(family: "ABeeZee" variant: .regular)
let fontSize = 27
Inkwell.shared.font(for: font, size: fontSize) { uifont in
    // Do something with the `uifont`.
}

Note: Do not forget to import Inkwell in any file using Inkwell.

App Transport Security

From iOS 9, it enforces using HTTPS connection by default. However, URLs of Google Fonts's font files are still using HTTP, you need to add the following to your Info.plist to except them from the ATS system.

<dict>
    <key>NSExceptionDomains</key>
    <dict>
        <key>fonts.gstatic.com</key>
        <dict>
            <key>NSExceptionAllowsInsecureHTTPLoads</key>
            <true/>
        </dict>
    </dict>
</dict>

Documentation

For full API documentation, please check Inkwell's documentation.

Dependency

License

Inkwell is available under the MIT license. See the LICENSE file for more info.

Copyright (c) 2017 Vinh Nguyen @ninjaprox