美文网首页switf
第三天2018-08-28

第三天2018-08-28

作者: RogueYBJ | 来源:发表于2018-08-28 15:20 被阅读0次

    因为switf没有没有.h和.pch文件也没有宏
    我们有需要一些全局的宏和全局方法
    不用担心,因为switf不需要通过.h文件调用类
    所以可以直接调用其他的类
    首先我们先新建一个ToolClass的工具类
    然后在这其中添加一些全局的宏
    因为switf主要分为变量和常量
    所以这些“宏”要分清变量和常量
    如果是常量的话直接用let定义就好了
    变量的话是不可以用var去定义的
    比如获取屏幕的宽高就是常量了

    全局宏

    import UIKit//注意要写在这个下面
    
    /**
     屏幕的宽高
     */
    
    let YBJ_WIDTH = UIScreen.main.bounds.size.width
    
    let YBJ_HEIGHT = UIScreen.main.bounds.size.height
    
    

    获取了屏幕的宽高后我们要适配的话就是变量
    变量的话就需要用方法去返回变量

    /**
     苹果6和6s的手机适配4.7英寸
     */
    
    func WIDTH6(f:CGFloat) -> CGFloat {
        return ((f/375.00)/YBJ_WIDTH)
    }
    
    func HEIGHT6(f:CGFloat) -> CGFloat {
        return ((f/375.00)/YBJ_HEIGHT)
    }
    
    func FRAME6(x:CGFloat , y:CGFloat , width:CGFloat , height:CGFloat) -> CGRect {
        return CGRect(x: WIDTH6(f: x) , y: WIDTH6(f: y) , width: WIDTH6(f: width) , height: WIDTH6(f: height))
    }
    
    

    iPhone X 的适配(常量)
    iPhone X 的话要通过获取屏幕的高度判断

    /**
     iPhone X 的 TabBar 和 NavBar 的适配
     */
    
    let IS_IPHONE_X = ((YBJ_HEIGHT == 812.00) ? true : false)
    
    let Height_NavContentBar = 44.00
    
    let Height_StatusBar = ((IS_IPHONE_X == true) ? 44.00 : 20.00)
    
    let Height_NavBar = ((IS_IPHONE_X == true) ? 88.00 : 64.00)
    
    let Height_TabBar = ((IS_IPHONE_X == true) ? 83.00 : 49.00)
    
    

    然后就是我们经常会用到的颜色RBGA了

    /**
     背景颜色RBGA
     */
    
    func RGBA(r:CGFloat , b:CGFloat , g:CGFloat , a:CGFloat) -> UIColor {
        return UIColor(red: (r)/255.0, green: (b)/255.0, blue: (g)/255.0, alpha: a)
    }
    
    /**
     应用主题背景颜色
     */
    
    let VC_Color = RGBA(r: 255, b: 253, g: 249, a: 1)
    
    

    以上这些是属于“宏”的定义

    接下来我们要写一写全局的方法
    好多APP都用到手机号码的判断以及密码的判断
    因为switf对bool的要求比较严格只能用true 和 false 来区分真和假
    大家在写的时候就要注意了

    全局方法

    /**
     手机号码正则
     */
    func MobilePhoneNumber(phone:String) -> Bool {
    
        let mobile = "^1((3[0-9]|4[57]|5[0-35-9]|7[0678]|8[0-9])\\d{8}$)"
        
        let  CM = "(^1(3[4-9]|4[7]|5[0-27-9]|7[8]|8[2-478])\\d{8}$)|(^1705\\d{7}$)";
        
        let  CU = "(^1(3[0-2]|4[5]|5[56]|7[6]|8[56])\\d{8}$)|(^1709\\d{7}$)";
        
        let  CT = "(^1(33|53|77|8[019])\\d{8}$)|(^1700\\d{7}$)";
        
        let regextestmobile = NSPredicate(format: "SELF MATCHES %@",mobile)
        
        let regextestcm = NSPredicate(format: "SELF MATCHES %@",CM )
        
        let regextestcu = NSPredicate(format: "SELF MATCHES %@" ,CU)
        
        let regextestct = NSPredicate(format: "SELF MATCHES %@" ,CT)
        
        if ((regextestmobile.evaluate(with: phone) == true)
            
            || (regextestcm.evaluate(with: phone)  == true)
            
            || (regextestct.evaluate(with: phone) == true)
            
            || (regextestcu.evaluate(with: phone) == true)) {
            return true
        }
        
        return false
    }
    
    /**
     9~16为不为纯数字的密码
     */
    func UserPassWorld(pass:String) -> Bool {
        if pass.count >= 9  && pass.count <= 16 && !isPurnInt(string: pass) {
            return true;
        }else{
            return false;
        }
    }
    
    ///判断密码手否为纯数字
    
    func isPurnInt(string: String) -> Bool {
        
        let scan: Scanner = Scanner(string: string)
        
        var val:Int = 0
        
        return scan.scanInt(&val) && scan.isAtEnd
        
    }
    
    

    相关文章

      网友评论

        本文标题:第三天2018-08-28

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