swift 3.0+ 常见宏书写

本文介绍了Swift中用于屏幕尺寸判断及适配的宏定义,包括屏幕宽度和高度的获取、不同iPhone型号的判断逻辑及颜色转换等实用功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

swift是全局编译,没有OC中的头文件概念,所以宏文件也就是常量和函数,常用的宏如下,以后发现有需要新的再补充

//
//  HHConstant.swift
//  HHOffer
//
//  Created by Max on 2017/5/8.
//  Copyright © 2017年 maxzhang. All rights reserved.
//

import Foundation
import UIKit

//屏幕高度
let kScreen_Height = UIScreen.main.bounds.size.height;

//屏幕宽度
let kScreen_Width = UIScreen.main.bounds.size.width;

//判断iPhone4
let IPHONE4_DEV:Bool! = (UIScreen.main.bounds.size.height == 960) ? true : false

//判断iPhone5/5c/5s
let IPHONE5_DEV:Bool! = (UIScreen.main.bounds.size.height == 1136) ? true : false

//判断iPhone6/6s
let IPHONE6s_DEV:Bool! = (UIScreen.main.bounds.size.height == 1334) ? true : false

//判断iPhone6p
let IPHONE6p_DEV:Bool! = (UIScreen.main.bounds.size.height == 2208) ? true : false

//其它屏幕尺寸相对iphone6的宽度
func kWithRelIPhone6(width: CGFloat) -> CGFloat {
    return width * kScreen_Width / 750.0;
}

//其它屏幕尺寸相对iphone6的高度
func kHeightRelIPhone6(width: CGFloat) -> CGFloat {
    return width * kScreen_Height / 1334.0;
}

//RGB 16进制转换
func UIColorFromRGB(rgbValue: UInt) -> UIColor {
    return UIColor(
        red: CGFloat((rgbValue & 0xFF0000) >> 16) / 255.0,
        green: CGFloat((rgbValue & 0x00FF00) >> 8) / 255.0,
        blue: CGFloat(rgbValue & 0x0000FF) / 255.0,
        alpha: CGFloat(1.0)
    )
}

//通过颜色获取图片
func imageWithColor(color:UIColor, size:CGSize) -> UIImage {

    let rect = CGRect.init(x: 0, y: 0, width: size.width, height: size.height);
    UIGraphicsBeginImageContext(rect.size);
    let context = UIGraphicsGetCurrentContext();
    context?.setFillColor(color.cgColor);
    context?.addRect(rect);
    let img = UIGraphicsGetImageFromCurrentImageContext()
    UIGraphicsEndImageContext();
    return img!;
}

 

转载于:https://www.cnblogs.com/blogMax/p/6826254.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值