DesignSize.swift 1.57 KB
//
//  DesignSize.swift
//  hippo-watch Watch App
//
//  Created by shihao on 2025/7/7.
//

import Foundation
import SwiftUI
#if canImport(WatchKit)
import WatchKit
#endif

// MARK: - 设计稿尺寸配置
struct DesignSize {
    static let width: CGFloat = 184.0   // 设计稿宽度
    static let height: CGFloat = 224.0  // 设计稿高度
}

// MARK: - 屏幕尺寸工具
struct ScreenSize {
#if canImport(WatchKit)
    static let width = WKInterfaceDevice.current().screenBounds.width
    static let height = WKInterfaceDevice.current().screenBounds.height
#else
    static let width: CGFloat = 184.0
    static let height: CGFloat = 224.0
#endif
    
    // 计算比例
    static let widthRatio = width / DesignSize.width
    static let heightRatio = height / DesignSize.height
}

// MARK: - 数值扩展
extension Int {
    /// 根据设计稿宽度比例适配
    var x: CGFloat {
        return CGFloat(self) * ScreenSize.widthRatio
    }
    
    /// 根据设计稿高度比例适配
    var y: CGFloat {
        return CGFloat(self) * ScreenSize.heightRatio
    }
}

extension Double {
    /// 根据设计稿宽度比例适配
    var x: CGFloat {
        return CGFloat(self) * ScreenSize.widthRatio
    }
    
    /// 根据设计稿高度比例适配
    var y: CGFloat {
        return CGFloat(self) * ScreenSize.heightRatio
    }
}

extension CGFloat {
    /// 根据设计稿宽度比例适配
    var x: CGFloat {
        return self * ScreenSize.widthRatio
    }
    
    /// 根据设计稿高度比例适配
    var y: CGFloat {
        return self * ScreenSize.heightRatio
    }
}