第三天2018-08-28

因?yàn)閟witf沒有沒有.h和.pch文件也沒有宏
我們有需要一些全局的宏和全局方法
不用擔(dān)心,因?yàn)閟witf不需要通過.h文件調(diào)用類
所以可以直接調(diào)用其他的類
首先我們先新建一個ToolClass的工具類
然后在這其中添加一些全局的宏
因?yàn)閟witf主要分為變量和常量
所以這些“宏”要分清變量和常量
如果是常量的話直接用let定義就好了
變量的話是不可以用var去定義的
比如獲取屏幕的寬高就是常量了

全局宏

import UIKit//注意要寫在這個下面

/**
 屏幕的寬高
 */

let YBJ_WIDTH = UIScreen.main.bounds.size.width

let YBJ_HEIGHT = UIScreen.main.bounds.size.height

獲取了屏幕的寬高后我們要適配的話就是變量
變量的話就需要用方法去返回變量

/**
 蘋果6和6s的手機(jī)適配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)

然后就是我們經(jīng)常會用到的顏色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)
}

/**
 應(yīng)用主題背景顏色
 */

let VC_Color = RGBA(r: 255, b: 253, g: 249, a: 1)

以上這些是屬于“宏”的定義

接下來我們要寫一寫全局的方法
好多APP都用到手機(jī)號碼的判斷以及密碼的判斷
因?yàn)閟witf對bool的要求比較嚴(yán)格只能用true 和 false 來區(qū)分真和假
大家在寫的時候就要注意了

全局方法

/**
 手機(jī)號碼正則
 */
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為不為純數(shù)字的密碼
 */
func UserPassWorld(pass:String) -> Bool {
    if pass.count >= 9  && pass.count <= 16 && !isPurnInt(string: pass) {
        return true;
    }else{
        return false;
    }
}

///判斷密碼手否為純數(shù)字

func isPurnInt(string: String) -> Bool {
    
    let scan: Scanner = Scanner(string: string)
    
    var val:Int = 0
    
    return scan.scanInt(&val) && scan.isAtEnd
    
}

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容