便利构造函数

如果我们想扩展某个系统类的方法,在OC中使用分类(Categray),但在Swift中没有分类的概念,但可以使用扩展实现

比如扩展UIButton的初始化方法,可以给UIButton类创建一个扩展(Extension)

在扩展中创建一个便利构造函数

便利构造函数,如果要对系统的某个类的构造函数进行扩充,则需要使用便利构造函数

init之前,加convenience关键字,并且在方法体中明确调用self.init()

UIButton-Extension.swift

import UIKit

extension UIButton {

    //便利构造函数,如果要对系统的某个类的构造函数进行扩充,则需要使用便利构造函数
    //init之前,加convenience关键字,并且在方法体中明确调用self.init()
    convenience init(image:UIImage?,imageHighlighted:UIImage?,backgroundImage:UIImage?,backgroundImageHighlighted:UIImage?) {

        self.init()

        if image != nil
        {
            setImage(image, for: .normal)
        }

        if imageHighlighted != nil
        {
            setImage(imageHighlighted, for: .highlighted)
        }

        if backgroundImage != nil
        {
            setBackgroundImage(backgroundImage, for: .normal)
        }

        if backgroundImageHighlighted != nil
        {
            setBackgroundImage(backgroundImageHighlighted, for: .highlighted)
        }
    }
}

results matching ""

    No results matching ""