Files
e-party-iOS/yana/Utils/FontManager.swift
edwinQQQ c470dba79c feat: 更新项目配置和功能模块
- 修改Package.swift以支持iOS 15和macOS 12。
- 更新swift-tca-architecture-guidelines.mdc中的alwaysApply设置为false。
- 注释掉AppDelegate中的NIMSDK导入,移除不再使用的NIMConfigurationManager和NIMSessionManager文件。
- 添加新的API相关文件,包括EMailLoginFeature、IDLoginFeature和相关视图,增强登录功能。
- 更新APIConstants和APIEndpoints以反映新的API路径。
- 添加本地化支持文件,包含英文和中文简体的本地化字符串。
- 新增字体管理和安全工具类,支持AES和DES加密。
- 更新Xcode项目配置,调整版本号和启动画面设置。
2025-07-09 16:14:19 +08:00

111 lines
3.6 KiB
Swift
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import SwiftUI
///
/// 使
struct FontManager {
// MARK: -
enum CustomFont: String, CaseIterable {
case bayonRegular = "Bayon-Regular"
///
var displayName: String {
switch self {
case .bayonRegular:
return "Bayon Regular"
}
}
///
var fileName: String {
return self.rawValue
}
}
// MARK: -
///
/// - Parameters:
/// - customFont:
/// - size:
/// - Returns: Font
static func font(_ customFont: CustomFont, size: CGFloat) -> Font {
return Font.custom(customFont.rawValue, size: size)
}
///
/// - Parameters:
/// - customFont:
/// - designSize: 稿
/// - screenWidth:
/// - Returns: Font
static func adaptedFont(_ customFont: CustomFont, designSize: CGFloat, for screenWidth: CGFloat) -> Font {
let adaptedSize = ScreenAdapter.fontSize(designSize, for: screenWidth)
return Font.custom(customFont.rawValue, size: adaptedSize)
}
///
/// - Parameter customFont:
/// - Returns:
static func isFontAvailable(_ customFont: CustomFont) -> Bool {
let fontNames = UIFont.familyNames
.flatMap { UIFont.fontNames(forFamilyName: $0) }
return fontNames.contains(customFont.rawValue)
}
///
/// - Returns:
static func getAllAvailableFonts() -> [String] {
return UIFont.familyNames
.flatMap { family in
UIFont.fontNames(forFamilyName: family)
.map { _ in "\(family): \(String(describing: font))" }
}
.sorted()
}
///
static func printAllAvailableFonts() {
print("=== 所有可用字体 ===")
for font in getAllAvailableFonts() {
print(font)
}
print("==================")
}
}
// MARK: - SwiftUI View Extension
extension View {
///
/// - Parameters:
/// - customFont:
/// - size:
/// - Returns:
func customFont(_ customFont: FontManager.CustomFont, size: CGFloat) -> some View {
self.font(FontManager.font(customFont, size: size))
}
///
/// - Parameters:
/// - customFont:
/// - designSize: 稿
/// - Returns:
func adaptedCustomFont(_ customFont: FontManager.CustomFont, designSize: CGFloat) -> some View {
self.modifier(AdaptedCustomFontModifier(customFont: customFont, designSize: designSize))
}
}
// MARK: - ViewModifier
struct AdaptedCustomFontModifier: ViewModifier {
let customFont: FontManager.CustomFont
let designSize: CGFloat
func body(content: Content) -> some View {
GeometryReader { geometry in
content
.font(FontManager.adaptedFont(customFont, designSize: designSize, for: geometry.size.width))
}
}
}