美文网首页iOS收藏
Swift 4.0常用宏定义属性与方法

Swift 4.0常用宏定义属性与方法

作者: ShineYangGod | 来源:发表于2018-08-10 10:32 被阅读136次

import UIKit

// MARK: 系统相关
/// Info
public let kAppBundleInfoVersion = Bundle.main.infoDictionary ?? Dictionary()
/// plist: AppStore 使用VersionCode 1.0.1
public let kAppBundleVersion = (kAppBundleInfoVersion["CFBundleShortVersionString" as String] as? String ) ?? ""
/// plist: 例如 1
public let kAppBundleBuild = (kAppBundleInfoVersion["CFBundleVersion"] as? String ) ?? ""
public let kAppDisplayName = (kAppBundleInfoVersion["CFBundleDisplayName"] as? String ) ?? ""

// MARK: 系统相关
public let kiOSBase = 8.0
public let kOSGreaterOrEqualToiOS8 = ( (Double(UIDevice.current.systemVersion) ?? kiOSBase) > 8.0 ) ? true : false;
public let kOSGreaterOrEqualToiOS9 = ((Double(UIDevice.current.systemVersion) ?? kiOSBase) >= 9.0 ) ? true : false;
public let kOSGreaterOrEqualToiOS10 = ((Double(UIDevice.current.systemVersion) ?? kiOSBase) >= 10.0 ) ? true : false;
public let kOSGreaterOrEqualToiOS11 = ((Double(UIDevice.current.systemVersion) ?? kiOSBase) >= 11.0 ) ? true : false;

//设备宽高、机型
public let kScreenHeight = UIScreen.main.bounds.size.height
public let kScreenWidth = UIScreen.main.bounds.size.width
public let kStatusBarheight = UIApplication.shared.statusBarFrame.size.height
public let kNavBarHeight_StatusHeight: ((UIViewController)-> CGFloat) = {(vc : UIViewController ) -> CGFloat in
weak var weakVC = vc;
var navHeight = weakVC?.navigationController?.navigationBar.bounds.size.height ?? 0.0
return (navHeight + kStatusBarheight)
}

// MARK: ============================================================================
// MARK: Dictory Array Strig Object 闭包方式
///过滤null对象
public let kFilterNullOfObj:((Any)->Any?) = {(obj: Any) -> Any? in
if obj is NSNull {
return nil
}
return obj
}

///过滤null的字符串,当nil时返回一个初始化的空字符串
public let kFilterNullOfString:((Any)->String) = {(obj: Any) -> String in
if obj is String {
return obj as! String
}
return ""
}

/// 过滤null的数组,当nil时返回一个初始化的空数组
public let kFilterNullOfArray:((Any)->Array<Any>) = {(obj: Any) -> Array<Any> in
if obj is Array<Any> {
return obj as! Array<Any>
}
return Array()
}

/// 过滤null的字典,当为nil时返回一个初始化的字典
public let kFilterNullOfDictionary:((Any) -> Dictionary<AnyHashable, Any>) = {( obj: Any) -> Dictionary<AnyHashable, Any> in
if obj is Dictionary<AnyHashable, Any> {
return obj as! Dictionary<AnyHashable, Any>
}
return Dictionary()
}

// MARK: ============================================================================
// MARK: 设置Nib、Stryboard、UIImage

/// 根据imageName创建一个UIImage
public let imageNamed:((String) -> UIImage? ) = { (imageName : String) -> UIImage? in
return UIImage.init(named: imageName)
}

/// 根据Main.storyboard建立ViewController
public let VC_From_Main_SB:((String)-> UIViewController? ) = {(SBID : String) -> UIViewController? in
return UIStoryboard.init(name: "Main", bundle: nil).instantiateViewController(withIdentifier:SBID)
}

// MARK: ============================================================================
// MARK: 设置颜色
/// 设置颜色值
public let HexRGB:((Int) -> UIColor) = { (rgbValue : Int) -> UIColor in
return HexRGBAlpha(rgbValue,1.0)
}

/// 通过 十六进制与alpha来设置颜色值 ( 样式: 0xff00ff )
public let HexRGBAlpha:((Int,Float) -> UIColor) = { (rgbValue : Int, alpha : Float) -> UIColor in
return UIColor(red: CGFloat(CGFloat((rgbValue & 0xFF0000) >> 16)/255), green: CGFloat(CGFloat((rgbValue & 0xFF00) >> 8)/255), blue: CGFloat(CGFloat(rgbValue & 0xFF)/255), alpha: CGFloat(alpha))
}

/// 通过 red 、 green 、blue 、alpha 颜色数值
public let RGBAlpa:((Float,Float,Float,Float) -> UIColor ) = { (r: Float, g: Float , b: Float , a: Float ) -> UIColor in
return UIColor.init(red: CGFloat(CGFloat(r)/255.0), green: CGFloat(CGFloat(g)/255.0), blue: CGFloat(CGFloat(b)/255.0), alpha: CGFloat(a))
}

相关文章

  • Swift 4.0常用宏定义属性与方法

    import UIKit // MARK: 系统相关/// Infopublic let kAppBundleIn...

  • 【OC】宏、const、static、extern

    宏 常用字符串,常见基本变量,可以定义为宏苹果推荐使用const,而不是宏(Swift没有宏定义) const 与...

  • Swift4.0 - 常用的宏定义

    在我们撰写OC代码时,为了方便快捷的增加开发效率,都会定义大量的宏来方便我们在开发中的使用,Swift也是可以对宏...

  • swift 4.0宏定义

    // 通过 red 、 green 、blue 、alpha 颜色数值 publicletRGBAlpa:((Fl...

  • 宏定义 define

    // 宏定义 define // Swift 中宏定义被去除了,取代的是 let 或者 get 属性 // 例如 ...

  • Swift4.0开发所遇问题总结

    Swift 4.0中setValuesForKeys()崩溃问题 : 该方法在Swift3中, 编译器会为属性自动...

  • swift 宏定义

    首页 创建一个swift项目 (swift4.0) 创建AppConst.swift 写宏 使用宏

  • 最新swift 4.0 更新总结

    1. Swift4.0中对于扩展的属性(包括实例属性、static属性、class属性),都只能使用get方法,不...

  • swift&&OC

    宏定义 OC中的宏定义 swift中的宏定义 OC中宏定义的方式,在swift中是不可用的,在swift中,宏定义...

  • swift 常用宏定义

    在Swift中不需要去创建header文件,只需要创建一个类即可,什么也不用配置。下面是一些本人总结的一些常用的宏...

网友评论

    本文标题:Swift 4.0常用宏定义属性与方法

    本文链接:https://www.haomeiwen.com/subject/zwhkbftx.html