CustomFont

CustomFont 旨在为 SwiftUI 应用程序提供直观的字体集成和管理。它为创建文本样式提供了用户友好的界面,并引入了根据用户定义的辅助功能设置,使用 LegibilityWeight 动态控制文本粗细的机制。

主要功能

如何使用

1. 将字体添加到项目

按照通常的方式将所需的字体添加到您的项目。另外,请记住在 Info.plist 文件中列出它们。

2. 定义字体

使用提供的协议定义您的字体。请注意

fileprivate enum NewYorkExtraLarge: String, CaseIterable, FontFamily {
    static let baseName = "NewYorkExtraLarge-"
    
    case semiBold, bold
}

extension CustomTextStyle {
    /// NewYorkExtraLarge, 600, 28, fixed
    static let titleFixed = CustomTextStyle(NewYorkExtraLarge.semiBold, fixedSize: 28)
    /// NewYorkExtraLarge, 600, 28
    static let title = CustomTextStyle(NewYorkExtraLarge.semiBold, size: 28, relativeTo: .title)
}

3. 使用字体

struct ContentView: View {
    @Environment(\.legibilityWeight) private var legibilityWeight
    
    private var attributedString: AttributedString {
        var result = AttributedString("Hello World!")
        result.font = .custom(.title).getFont(accordingTo: legibilityWeight)
        return result
    }
    
    var body: some View {
        VStack(spacing: 20) {
            Text("Hello World!")
                .font(.custom(.titleFixed))
                
            Text("Hello World!")
                .font(.custom(.title))
                
            Text("Hello World!")
                .font(.custom(.title))
                .italic()
            
            Text(attributedString)
            
            Text("Hello World!")
                .font(.custom(.title), accordingTo: legibilityWeight)
        }
        .padding()
    }
}

更多示例