DesignSize.swift
1.57 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
//
// 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
}
}