SystemFontOverride 1.0.0

SystemFontOverride 1.0.0

Yonat Sharon维护。



  • Yonat Sharon

SystemFontOverride

为您的 iOS 应用提供简单的字体品牌化。

Swift Version License CocoaPods Compatible Platform PRs Welcome

特性

  • 用您自己的品牌字体覆盖默认系统字体。
  • 与 UIKit 和 SwiftUI 均兼容。
  • 简单直观的 API,易于快速集成。

用法

即时字体品牌化,自动覆盖系统字体

UIFont.systemFontFamilyOverride = "Marker Felt" // replace with appropriate font

在 UIKit 中显式指定字体

someUIKitElement.font = .systemFontOverride(size: 16)

在 SwiftUI 中显式指定字体

someSwiftUIView
    .font(.systemOverride(size: 16))

安装

CocoaPods

pod 'SystemFontOverride'

Swift 包管理器

dependencies: [
    .package(url: "https://github.com/yonat/SystemFontOverride", from: "1.0.0")
]

局限性

大多数 UI 元素都将使用覆盖字体正常工作。

然而,有一些元素完全忽略了覆盖

  • ColorPickerUIColorWell 提示的 Sheet

此外,一些 SwiftUI 控件需要显式的 .font() 修改器来更新它们的标题字体

  • 选择器
  • 菜单
  • 切换
  • borderedborderedProminent 按钮样式
  • 某些上下文中的 Label

有关详细信息,请参阅示例应用。

机制

为了自动覆盖系统字体,SystemFontOverride 使用 方法交换 来覆盖 UIFont.systemFont(ofSize:) 和相关方法。

分段控件和 UITextField 忽略系统字体覆盖,但它们的 appearance() 代理正确地将标题设置为覆盖字体。