第三天2018-08-28

因为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)