CustomDynamicType 1.0.0

CustomDynamicType 1.0.0

Giuseppe Travasoni 维护。



  • 编者::
  • Giuseppe Travasoni

CustomDynamicType - 在 iOS 中连接自定义字体和无障碍功能

Banner

简介

欢迎来到 CustomDynamicType,这是一个灵活的 Swift 库,旨在将自定义字体无缝集成到 iOS Dynamic Type 中。这个库不仅可以通过定制字体增强您应用程序的美观,更是一种对包容性的承诺。

该解决方案适用于 UIKit 和 SwiftUI,在不同的 iOS 开发环境中提供顺畅和可适应的体验。

使用 CustomDynamicType,您可以确保您自定义的字体完全支持并拥抱苹果广泛的无障碍功能。

无论是在构建新应用程序还是在改进现有应用程序,CustomDynamicType 都可以帮助您创建更易于访问和视觉上更吸引人的 iOS 应用程序。加入我们,重新定义 iOS 生态系统中的设计和无障碍性边界。

用法

将CustomDynamicType集成到您的iOS应用中非常简单,允许您使用自定义字体,同时完全支持无障碍功能。按照以下步骤进行设置:

第一步:定义自定义字体

首先,定义您应用程序中的自定义字体。CustomDynamicType支持各种字体粗细

  • ultraLight:可选,用于超轻字体变体。
  • thin:可选,用于细字体变体。
  • light:可选,用于轻字体变体。
  • regular:必需,用于正常字体粗细。
  • medium:可选,用于中等字体变体。
  • semibold:必需,用于半粗字体变体。
  • bold:可选,用于粗字体变体。
  • heavy:可选,用于重字体变体。
  • black:可选,用于黑字体变体。

请确保这些字体已包含在您的项目中,并在您的应用程序的Info.plist中进行配置,如果您是首次集成自定义字体,请遵循Apple文档

第二步:初始化CustomDynamicType

在AppDelegate的application(_:didFinishLaunchingWithOptions:)方法中,初始化CustomDynamicType

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
    
    let fontNames = CustomDynamicFontNames(
        ultraLight: "YourFontName-UltraLight",
        thin: "YourFontName-Thin",
        light: "YourFontName-Light",
        regular: "YourFontName-Regular", // Required
        medium: "YourFontName-Medium",
        semibold: "YourFontName-SemiBold", // Required
        bold: "YourFontName-Bold",
        heavy: "YourFontName-Heavy",
        black: "YourFontName-Black"
    )
    CustomDynamicType.setup(with: fontNames)
    
    return true
}

"YourFontName"替换为您实际的字体名称。regularsemibold是必需的,因为Apple的默认实现依赖于这些粗细,其他的是可选的。

UIKit集成

轻松将自定义字体应用到UILabels中。例如:

let label = UILabel()
label.setFont(style: .largeTitle)

let boldLabel = UILabel()
boldLabel.setFont(style: .body, overrideWeight: .bold)

在这些示例中,使用 setFont(style:overrideWeight:) 来为每个 UILabel 应用所需的字体样式。overrideWeight 参数是可选的,支持 UIFont.Weight 的任何变体(ultraLightthinlightregularmediumsemiboldboldheavyblack),但请记住,您需要设置与相应字体名称对应的库,否则它将退回到常规字体。

SwiftUI 集成

将自定义字体应用于 SwiftUI 中的 Text 视图。示例

Text("Title text")
    .font(Font.font(style: .largeTitle))
Text("Another text but for the body")
    .font(Font.font(style: .body, overrideWeight: .bold))

在 SwiftUI 中,您使用 Font.font(style:overrideWeight:) 来设置 Text 视图的字体样式和可选的重量。overrideWeight 参数是可选的,支持 Font.Weight 的任何变体(ultraLightthinlightregularmediumsemiboldboldheavyblack),但请记住,您需要设置与相应字体名称对应的库,否则它将退回到常规字体。

通过将这些方法集成到您的 iOS 应用中,您可以在 UIKit 和 SwiftUI 平台上维持一致的、可访问的字体样式。CustomDynamicType 确保您的自定义字体不仅视觉上吸引人,而且完全兼容 Apple 的可访问性功能。

Animation

文档

完整文档可在此处找到:此链接

安装

Swift 包管理器

将依赖项添加到 Package.swift 文件中。

  dependencies: [
    .package(url: "https://github.com/neobeppe/CustomDynamicType.git", .upToNextMajor(from: "1.0.0"))
  ]

CocoaPods

CustomDynamicType 可通过 CocoaPods 获取。要安装它,只需将以下行添加到您的 Podfile

pod 'CustomDynamicType'

许可证

CustomDynamicType 在 MIT 许可证下可用。有关更多信息,请参阅 LICENSE 文件。