AnimationFontProvider.swift 871 字节
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
//
//  AnimationFontProvider.swift
//  Lottie
//
//  Created by Brandon Withrow on 8/5/20.
//  Copyright © 2020 YurtvilleProds. All rights reserved.
//

import CoreText

// MARK: - AnimationFontProvider

/// Font provider is a protocol that is used to supply fonts to `LottieAnimationView`.
///
public protocol AnimationFontProvider {
  func fontFor(family: String, size: CGFloat) -> CTFont?
}

// MARK: - DefaultFontProvider

/// Default Font provider.
public final class DefaultFontProvider: AnimationFontProvider {

  // MARK: Lifecycle

  public init() { }

  // MARK: Public

  public func fontFor(family: String, size: CGFloat) -> CTFont? {
    CTFontCreateWithName(family as CFString, size, nil)
  }
}

// MARK: Equatable

extension DefaultFontProvider: Equatable {
  public static func ==(_: DefaultFontProvider, _: DefaultFontProvider) -> Bool {
    true
  }
}