92 lines
2.4 KiB
Swift
92 lines
2.4 KiB
Swift
|
|
//
|
||
|
|
// CGFloat+Extension.swift
|
||
|
|
// Alamofire
|
||
|
|
//
|
||
|
|
// Created by aby on 2022/12/26.
|
||
|
|
// Copyright © 2022 Tencent. All rights reserved.
|
||
|
|
//
|
||
|
|
|
||
|
|
import Foundation
|
||
|
|
import UIKit
|
||
|
|
|
||
|
|
var kScreenWidth: CGFloat {
|
||
|
|
UIScreen.main.bounds.width
|
||
|
|
}
|
||
|
|
var kScreenHeight: CGFloat {
|
||
|
|
UIScreen.main.bounds.height
|
||
|
|
}
|
||
|
|
|
||
|
|
public let kDeviceIsiPhoneX : Bool = {
|
||
|
|
if UIDevice.current.userInterfaceIdiom == .pad {
|
||
|
|
return false
|
||
|
|
}
|
||
|
|
let size = UIScreen.main.bounds.size
|
||
|
|
let notchValue = Int(size.width/size.height*100)
|
||
|
|
if notchValue == 216 || notchValue == 46 {
|
||
|
|
return true
|
||
|
|
}
|
||
|
|
return false
|
||
|
|
}()
|
||
|
|
|
||
|
|
public let kDeviceSafeBottomHeight : CGFloat = {
|
||
|
|
if kDeviceIsiPhoneX {
|
||
|
|
return 34
|
||
|
|
}
|
||
|
|
else {
|
||
|
|
return 0
|
||
|
|
}
|
||
|
|
}()
|
||
|
|
private var width: CGFloat {
|
||
|
|
return min(kScreenHeight, kScreenWidth)
|
||
|
|
}
|
||
|
|
private var height: CGFloat {
|
||
|
|
return max(kScreenWidth, kScreenHeight)
|
||
|
|
}
|
||
|
|
|
||
|
|
extension CGFloat {
|
||
|
|
|
||
|
|
/// Dimensions in 375 design drawings
|
||
|
|
///
|
||
|
|
/// - Returns: Final result scaling result
|
||
|
|
public func scale375(exceptPad: Bool = true) -> CGFloat {
|
||
|
|
if UIDevice.current.userInterfaceIdiom == .pad {
|
||
|
|
return exceptPad ? self * 1.5 : self * (width / 375.00)
|
||
|
|
}
|
||
|
|
return self * (width / 375.00)
|
||
|
|
}
|
||
|
|
|
||
|
|
public func scale375Height(exceptPad: Bool = true) -> CGFloat {
|
||
|
|
if UIDevice.current.userInterfaceIdiom == .pad {
|
||
|
|
return exceptPad ? self * 1.5 : self * (height / 812.00)
|
||
|
|
}
|
||
|
|
return self * (height / 812.00)
|
||
|
|
}
|
||
|
|
|
||
|
|
/// iPad proportion adaptation
|
||
|
|
///
|
||
|
|
/// - Returns: Final Results
|
||
|
|
public func fitPad() -> CGFloat {
|
||
|
|
return UIDevice.current.userInterfaceIdiom == .pad ? self * 1.5 : self
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
extension Int {
|
||
|
|
public func scale375(exceptPad: Bool = true) -> CGFloat {
|
||
|
|
if UIDevice.current.userInterfaceIdiom == .pad {
|
||
|
|
return exceptPad ? CGFloat(self) * 1.5 : CGFloat(self) * (width / 375.00)
|
||
|
|
}
|
||
|
|
return CGFloat(self) * (width / 375.00)
|
||
|
|
}
|
||
|
|
|
||
|
|
public func scale375Height(exceptPad: Bool = true) -> CGFloat {
|
||
|
|
if UIDevice.current.userInterfaceIdiom == .pad {
|
||
|
|
return exceptPad ? CGFloat(self) * 1.5 : CGFloat(self) * (height / 812.00)
|
||
|
|
}
|
||
|
|
return CGFloat(self) * (height / 812.00)
|
||
|
|
}
|
||
|
|
|
||
|
|
public func fitPad() -> CGFloat {
|
||
|
|
return UIDevice.current.userInterfaceIdiom == .pad ? CGFloat(self) * 1.5 : CGFloat(self)
|
||
|
|
}
|
||
|
|
}
|