美文网首页
Swift4.0 - 常用的宏定义

Swift4.0 - 常用的宏定义

作者: 等不来的期待 | 来源:发表于2018-12-21 17:46 被阅读7次

在我们撰写OC代码时,为了方便快捷的增加开发效率,都会定义大量的宏来方便我们在开发中的使用,Swift也是可以对宏进行操作的,下面就是我在仿照OC中常用的宏定义来写的Swift代码

enum AppConstants {
    
    //MARK: - 是否是测试环境
    static let NetDebug: Bool = true
    
    //MARK: - 随机颜色
    static let ColorDebug: Bool = false
    
    //MARK: - 日志输出
    static let LogDebug: Bool = true
    
    //存储-用户信息-键
    static let CurrentLoginUserInfo: String = ""
    
    static let KeyChainService: String = ""
    
    //存储-网络请求token-键
    static let NetworkToken: String = "NetworkToken"
    
    //MARK: - 协议(http/https)(含“//”后缀,不能为空)
    enum AppURLProtocol {
        
        //测试
        static let DebugProtocol = "https://"
        
        //生产
        static let ProduceProtocol = "https://"
    }
    
    //MARK: - 地址(host) (不能为空)
    enum AppURLHOST {
        
        //测试
        static let DebugHOST = "项目测试域名"
        
        //生产
        static let ProduceHOST = "项目生产域名"
    }
    
    //MARK: - 端口(port),(含“:”前缀,如果 URL_PORT 为空,则不含)
    enum AppURLPort {
        
        //测试
        static let DebugPort = ""
        
        //生产
        static let ProducePort = ""
    }
    
    //MARK: - 接口地址
    enum AppInterfaceAddress {
        
        //登录
        static let Login = "接口地址路由"
        
    }
    
    
    //MARK: - APP的key
    enum AppKey {
        
        static let UMeng = "三方Key"
        
        //......
        
    }
    
    //MARK: - APP的密钥
    enum AppSecret {
        
        static let UMeng = "三方密钥"
        
        //......
        
    }
    
    //MARK: - 错误类型
    enum ErrorType {
        
        static let ServerError = "服务器异常"
        
    }

}

//MARK: - 日志输出
// <T>: 为泛型,外界传入什么就是什么
func BJDLog<T>(_ message: T, file: String = #file, method: String = #function, line: Int = #line) {
    
    if AppConstants.LogDebug {
        
        print("\(method)[\(line)]:\(message)")
        
    }
    
}

//MARK: - frame 相关
/************************  屏幕尺寸  ***************************/

public enum AppFrame {
    
    static let ScreenBounds = UIScreen.main.bounds
    
    // 屏幕宽度
    static let ScreenWidth = ScreenBounds.size.width
    
    // 屏幕高度
    static let ScreenHeight = ScreenBounds.size.height
    
    // iPhone4
    static let iPhone4 = ScreenHeight  < 568 ? true : false
    
    // iPhone 5
    static let iPhone5 = ScreenHeight  == 568 ? true : false
    
    // iPhone 6
    static let iPhone6 = ScreenHeight  == 667 ? true : false
    
    // iphone 6P
    static let iPhone6P = ScreenHeight == 736 ? true : false
    
    // iphone X
    static let iPhoneX = ScreenHeight == 812 ? true : false
    
    // navigationBarHeight
    static let kNavigationBarHeight : CGFloat = iPhoneX ? 88 : 64
    
    // tabBarHeight
    static let kTabBarHeight : CGFloat = iPhoneX ? 49 + 34 : 49
    
    /** 如果是iPhoneX按照Plus 尺寸计算比例 */
    static let Scale_Height = iPhoneX ? 736.0/667.0 : ScreenHeight / 667
    static let Scale_Width = ScreenWidth / 375
    
}

func ADAPTX(x:CGFloat) -> CGFloat {
    
    return AppFrame.Scale_Width * x
    
}

func ADAPTY(y:CGFloat) -> CGFloat {
    
    return AppFrame.Scale_Height * y
    
}

// MARK: ============================================================================
// MARK: 设置颜色

//MARK: - AppColor 相关
public enum AppColor {
    
    static let clear = UIColor.clear
    
    //APP主题色
    static let themeRed = RGB0X(hexValue: 0xfd2e2e)
    //APP红色
    static let red = RGB0X(hexValue: 0xff2323)
    //APP蓝色
    static let blue = RGB0X(hexValue: 0x488ff0)
    //APP黑色
    static let black = RGB0X(hexValue: 0x333333)
    //APP深灰色
    static let darkgGray = RGB0X(hexValue: 0x666666)
    //APP灰色
    static let gray = RGB0X(hexValue: 0xf9f9f9)
    //APP轻灰色
    static let lightGray = RGB0X(hexValue: 0xf5f5f5)
}

/// RGBA的颜色设置
func RGB(_ r:CGFloat, g:CGFloat, b:CGFloat) -> UIColor {
    
    return UIColor(red: r / 255.0, green: g / 255.0, blue: b / 255.0, alpha: 1.0)
    
}

func RGBA(_ r:CGFloat, g:CGFloat, b:CGFloat, a:CGFloat) -> UIColor {
    
    return UIColor(red: r / 255.0, green: g / 255.0, blue: b / 255.0, alpha: a)
    
}

func HEXA(hexValue: Int, a: CGFloat) -> (UIColor) {
    
    return UIColor(red: ((CGFloat)((hexValue & 0xFF0000) >> 16)) / 255.0,
                   green: ((CGFloat)((hexValue & 0xFF00) >> 8)) / 255.0,
                   blue: ((CGFloat)(hexValue & 0xFF)) / 255.0,
                   alpha: a)
    
}

func RGB0X(hexValue: Int) -> (UIColor) {
    
    return HEXA(hexValue: hexValue, a: 1.0)
    
}

func FONT(font: CGFloat) -> UIFont {
    
    return UIFont.systemFont(ofSize: font)
    
}

调用的时候Swift相对OC还是简便了许多:
此处仅仅列举一个例子就行:
颜色:
AppColor .clear
直接再使用的时候一行代码就行了,就是这么的简便的

相关文章

  • Swift4.0 - 常用的宏定义

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

  • iOS 常用宏定义

    常用宏定义

  • iOS 常用宏定义

    iOS 开发中使用一些常用宏定义可以大大提高开发效率,提高代码的重用性.以下是一些常用的宏定义: 像这些宏定义,在...

  • 宏定义指令

    常用的宏定义指令 详细应用

  • iOS开发常用的宏定义

    Objective-C常用宏/*! 字体 */ /*! 颜色宏定义 */ /*! 弱引用宏 */ /*! 输出显示...

  • 常用宏定义

    // HGBMacroConfig.h #ifndef HGBMacroConfig_h #define HGBM...

  • 常用宏定义

    //屏幕尺寸 define SCREEN_WIDTH [UIScreen mainScreen].bounds...

  • 常用宏定义

    1.color #define COlOR(R,G,B,A) [UIColor colorWithRed:(R)/...

  • 常用宏定义

    1、屏幕尺寸 2、UIView相关 3、常用颜色 4、手机版本 5、沙盒

  • 常用宏定义

    未完待续 持续更新中 1. 字符串判空处理 2.获取屏幕宽高 3.Log输出样式修改 呈现效果 4.宏定义单例 5...

网友评论

      本文标题:Swift4.0 - 常用的宏定义

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