频道栏目
首页 > 程序开发 > 移动开发 > 其他 > 正文
Swift3.0 屏幕适配
2017-09-11 09:31:59      个评论    来源:weixin_40166364的博客  
收藏   我要投稿

Swift3.0 屏幕适配,适配基于 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文件,可声明宏,方法,全局任意使用 –> 必须用Const命名

// 屏幕适配 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)
点击复制链接 与好友分享!回本站首页
上一篇:软件测试实验室之Eclipse
下一篇:React Native 时间转换格式工具类
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训

版权所有: 红黑联盟--致力于做实用的IT技术学习网站