// // QSLSizeFit.swift // QuickSearchLocation // // Created by Destiny on 2024/11/25. // import Foundation import UIKit // MARK: - 适配屏幕比例 class QSLSizeFit : NSObject { static let shared : QSLSizeFit = { let shared = QSLSizeFit() return shared }() // 宽度适配 let rpx : Double // 高度适配 let hpx : Double override init() { rpx = Double(1.0 * UIScreen.main.bounds.size.width / 360) hpx = Double(1.0 * UIScreen.main.bounds.size.height / 640) } func getIRpx(value : Int) -> Int{ return Int(rpx * Double(value)) } func getFRpx(value : Float) -> Float{ return Float(rpx) * value } func getDRpx(value : Double) -> Double{ return Double(rpx) * value } func getIRHpx(value : Int) -> Int{ return Int(hpx * Double(value)) } func getFRHpx(value : Float) -> Float{ return Float(hpx) * value } func getDRHpx(value : Double) -> Double{ return hpx * value } } extension Int { // MARK: - 适配屏幕比例 var rpx : Int { return QSLSizeFit.shared.getIRpx(value: self) } var hpx : Int { return QSLSizeFit.shared.getIRHpx(value: self) } } extension Float { // MARK: - 适配屏幕比例 var rpx : Float { return QSLSizeFit.shared.getFRpx(value: self) } var hpx : Float { return QSLSizeFit.shared.getFRHpx(value: self) } } extension Double { // MARK: - 适配屏幕比例 var rpx : Double { return QSLSizeFit.shared.getDRpx(value: self) } var hpx : Double { return QSLSizeFit.shared.getDRHpx(value: self) } } extension CGFloat { // MARK: - 适配屏幕比例 var rpx : CGFloat { return CGFloat(QSLSizeFit.shared.getFRpx(value: Float(self))) } var hpx : CGFloat { return CGFloat(QSLSizeFit.shared.getFRHpx(value: Float(self))) } }