CustomDynamicType - 在 iOS 中连接自定义字体和无障碍功能
简介
欢迎来到 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"
替换为您实际的字体名称。regular
和semibold
是必需的,因为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
的任何变体(ultraLight
、thin
、light
、regular
、medium
、semibold
、bold
、heavy
、black
),但请记住,您需要设置与相应字体名称对应的库,否则它将退回到常规字体。
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
的任何变体(ultraLight
、thin
、light
、regular
、medium
、semibold
、bold
、heavy
、black
),但请记住,您需要设置与相应字体名称对应的库,否则它将退回到常规字体。
通过将这些方法集成到您的 iOS 应用中,您可以在 UIKit 和 SwiftUI 平台上维持一致的、可访问的字体样式。CustomDynamicType 确保您的自定义字体不仅视觉上吸引人,而且完全兼容 Apple 的可访问性功能。
文档
完整文档可在此处找到:此链接
安装
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 文件。