Files
e-party-iOS/yana/Utils/ScreenAdapter.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

114 lines
3.9 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 ScreenAdapter {
// MARK: - 稿
/// 稿 (iPhone 14 Pro)
static let designWidth: CGFloat = 393
/// 稿 (iPhone 14 Pro)
static let designHeight: CGFloat = 852
// MARK: -
/// 稿
/// - Parameters:
/// - designValue: 稿
/// - screenWidth:
/// - Returns:
static func width(_ designValue: CGFloat, for screenWidth: CGFloat) -> CGFloat {
return designValue * (screenWidth / designWidth)
}
/// 稿
/// - Parameters:
/// - designValue: 稿
/// - screenHeight:
/// - Returns:
static func height(_ designValue: CGFloat, for screenHeight: CGFloat) -> CGFloat {
return designValue * (screenHeight / designHeight)
}
/// 稿
/// - Parameters:
/// - designFontSize: 稿
/// - screenWidth:
/// - Returns:
static func fontSize(_ designFontSize: CGFloat, for screenWidth: CGFloat) -> CGFloat {
return designFontSize * (screenWidth / designWidth)
}
/// ()
/// - Parameter screenWidth:
/// - Returns:
static func widthRatio(for screenWidth: CGFloat) -> CGFloat {
return screenWidth / designWidth
}
/// ()
/// - Parameter screenHeight:
/// - Returns:
static func heightRatio(for screenHeight: CGFloat) -> CGFloat {
return screenHeight / designHeight
}
}
// MARK: - SwiftUI View Extension
extension View {
/// 稿
/// - Parameter designValue: 稿
/// - Returns:
func adaptedWidth(_ designValue: CGFloat) -> some View {
self.modifier(AdaptedWidthModifier(designValue: designValue))
}
/// 稿
/// - Parameter designValue: 稿
/// - Returns:
func adaptedHeight(_ designValue: CGFloat) -> some View {
self.modifier(AdaptedHeightModifier(designValue: designValue))
}
/// 稿
/// - Parameter designFontSize: 稿
/// - Returns:
func adaptedFont(_ designFontSize: CGFloat, weight: Font.Weight = .regular) -> some View {
self.modifier(AdaptedFontModifier(designFontSize: designFontSize, weight: weight))
}
}
// MARK: - ViewModifiers
struct AdaptedWidthModifier: ViewModifier {
let designValue: CGFloat
func body(content: Content) -> some View {
GeometryReader { geometry in
content
.frame(width: ScreenAdapter.width(designValue, for: geometry.size.width))
}
}
}
struct AdaptedHeightModifier: ViewModifier {
let designValue: CGFloat
func body(content: Content) -> some View {
GeometryReader { geometry in
content
.padding(.top, ScreenAdapter.height(designValue, for: geometry.size.height))
}
}
}
struct AdaptedFontModifier: ViewModifier {
let designFontSize: CGFloat
let weight: Font.Weight
func body(content: Content) -> some View {
GeometryReader { geometry in
content
.font(.system(size: ScreenAdapter.fontSize(designFontSize, for: geometry.size.width), weight: weight))
}
}
}