Swift学习_类方法&构造函数

Swift学习_类方法&构造函数_第1张图片
Swift

1.创建一个扩展

command + N 创建一个文件,然后选择Swift File,点击Next,然后起个见名知意的名(一般都是起类名+Extension),创建。

2. 类方法创建Button

//
//  UIButton-Extension.swift
//  SwiftSHWB
//
//  Created by HarrySun on 2017/8/2.
//  Copyright © 2017年 Mobby. All rights reserved.
//

import UIKit

    // 给UIButton加一个扩展
    extension UIButton{
        // swift中类方法是以class开头的方法,类似于OC中+开头的方法
        
        class func createButton(imageName:String,bgImageName:String) -> UIButton{
            // 1.创建Btn
            let btn = UIButton()
            // 2.设置btn属性
            btn.setImage(UIImage(named:imageName), for: .normal)
            btn.setImage(UIImage(named:imageName + "_highlighted"), for: .highlighted)
            btn.setBackgroundImage(UIImage(named:bgImageName), for: .normal)
            btn.setBackgroundImage(UIImage(named:bgImageName + "_highlighted"), for: .highlighted)
            btn.sizeToFit()
            return btn
        }
 
}
使用
lazy var composeBtn:UIButton = UIButton.createButton(imageName: "tabbar_compose_icon_add", bgImageName: "tabbar_compose_button")

3.构造函数创建Button

相关知识--便利构造函数的特点:

1.便利构造函数通常都是卸载extension里面
2.便利构造函数init前面需要加载convenience
3.在便利构造函数中需要明确的调用self.init()

//
//  UIButton-Extension.swift
//  SwiftSHWB
//
//  Created by HarrySun on 2017/8/2.
//  Copyright © 2017年 Mobby. All rights reserved.
//

import UIKit

    // 给UIButton加一个扩展
    // 构造函数(构造函数是不需要写返回值的,系统会自动返回的)
    // convenience:便利,使用convenience修饰的构造函数叫做便利构造函数
    // 便利构造函数通常用在对系统的类进行构造函数的扩充时使用
    extension UIButton{
    convenience init(imageName:String,bgImageName:String){
        self.init()
        setImage(UIImage(named:imageName), for: .normal)
        setImage(UIImage(named:imageName + "_highlighted"), for: .highlighted)
        setBackgroundImage(UIImage(named:bgImageName), for: .normal)
        setBackgroundImage(UIImage(named:bgImageName + "_highlighted"), for: .highlighted)
        sizeToFit()
    }
    
}
使用
lazy var composeBtn:UIButton = UIButton(imageName: "tabbar_compose_icon_add", bgImageName: "tabbar_compose_button")

附录

查看完整专栏《Swift学习》

有问题欢迎指正以及相互探讨 —— CoderSun

你可能感兴趣的:(Swift学习_类方法&构造函数)