QSLSizeFit.swift 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. //
  2. // QSLSizeFit.swift
  3. // QuickSearchLocation
  4. //
  5. // Created by Destiny on 2024/11/25.
  6. //
  7. import Foundation
  8. import UIKit
  9. // MARK: - 适配屏幕比例
  10. class QSLSizeFit : NSObject {
  11. static let shared : QSLSizeFit = {
  12. let shared = QSLSizeFit()
  13. return shared
  14. }()
  15. // 宽度适配
  16. let rpx : Double
  17. // 高度适配
  18. let hpx : Double
  19. override init() {
  20. rpx = Double(1.0 * UIScreen.main.bounds.size.width / 360)
  21. hpx = Double(1.0 * UIScreen.main.bounds.size.height / 640)
  22. }
  23. func getIRpx(value : Int) -> Int{
  24. return Int(rpx * Double(value))
  25. }
  26. func getFRpx(value : Float) -> Float{
  27. return Float(rpx) * value
  28. }
  29. func getDRpx(value : Double) -> Double{
  30. return Double(rpx) * value
  31. }
  32. func getIRHpx(value : Int) -> Int{
  33. return Int(hpx * Double(value))
  34. }
  35. func getFRHpx(value : Float) -> Float{
  36. return Float(hpx) * value
  37. }
  38. func getDRHpx(value : Double) -> Double{
  39. return hpx * value
  40. }
  41. }
  42. extension Int {
  43. // MARK: - 适配屏幕比例
  44. var rpx : Int {
  45. return QSLSizeFit.shared.getIRpx(value: self)
  46. }
  47. var hpx : Int {
  48. return QSLSizeFit.shared.getIRHpx(value: self)
  49. }
  50. }
  51. extension Float {
  52. // MARK: - 适配屏幕比例
  53. var rpx : Float {
  54. return QSLSizeFit.shared.getFRpx(value: self)
  55. }
  56. var hpx : Float {
  57. return QSLSizeFit.shared.getFRHpx(value: self)
  58. }
  59. }
  60. extension Double {
  61. // MARK: - 适配屏幕比例
  62. var rpx : Double {
  63. return QSLSizeFit.shared.getDRpx(value: self)
  64. }
  65. var hpx : Double {
  66. return QSLSizeFit.shared.getDRHpx(value: self)
  67. }
  68. }
  69. extension CGFloat {
  70. // MARK: - 适配屏幕比例
  71. var rpx : CGFloat {
  72. return CGFloat(QSLSizeFit.shared.getFRpx(value: Float(self)))
  73. }
  74. var hpx : CGFloat {
  75. return CGFloat(QSLSizeFit.shared.getFRHpx(value: Float(self)))
  76. }
  77. }