适配基于 UIView+Extension
创建UIView+Extension.swift类,重写frame
import UIKit
extension UIView {
// x
var x: CGFloat {
get {
return frame.origin.x
}
set(newValue) {
var tempFrame: CGRect = frame
tempFrame.origin.x = newValue
frame = tempFrame
}
}
// y
var y: CGFloat {
get {
return frame.origin.y
}
set(newValue) {
var tempFrame: CGRect = frame
tempFrame.origin.y = newValue
frame = tempFrame
}
}
// centerX
var centerX: CGFloat {
get {
return center.x
}
set(newValue) {
var tempCenter: CGPoint = center
tempCenter.x = newValue
center = tempCenter
}
}
// centerY
var centerY: CGFloat {
get {
return center.y
}
set(newValue) {
var tempCenter: CGPoint = center
tempCenter.y = newValue
center = tempCenter;
}
}
// width
var width: CGFloat {
get {
return frame.size.width
}
set(newValue) {
var tempFrame: CGRect = frame
tempFrame.size.width = newValue
frame = tempFrame
}
}
// height
var height: CGFloat {
get {
return frame.size.height
}
set(newValue) {
var tempFrame: CGRect = frame
tempFrame.size.height = newValue
frame = tempFrame
}
}
// size
var size: CGSize {
get {
return frame.size
}
set(newValue) {
var tempFrame: CGRect = frame
tempFrame.size = newValue
frame = tempFrame
}
}
}
创建Const.swift ,Const.swift相当于Global文件,可声明宏,方法,全局任意使用
// 屏幕适配 375 6S尺寸
func fitScale(AT: CGFloat) -> CGFloat{
return (UIScreen.main.bounds.width / 375) * AT;
}
外界使用方法
let avatarIcon = UIImageView(image: UIImage(named: "headName_36x36_"))
avatarIcon.frame = CGRect(x: fitScale(AT: 100), y: fitScale(AT: 100), width: fitScale(AT: 36), height: fitScale(AT: 36))
self.view.addSubview(avatarIcon)