convenience : 如果构造方法前面没有convenience单词,代表该方法是出事话构造方法(指定构造方法);如果构造方法前面有convenience,代表该方法是便利构造方法
- 指定构造方法:(没有convenience单词)必须对所有属性进行初始化
- 便利构造方法:(有convenience单词)不用对所有属性进行初始化,因为便利构造方法依赖于指定构造方法。一般情况下,如果想给系统的类提供一个快速创建的方法,就自定义一个便利构造方法
import UIKit
extension UIButton
{
//传入图片名称创建按钮
convenience init(imageName: String, backgroundImageName: String) {
//1.创建按钮
self.init()
//2.设置前景图
setImage(UIImage(named: imageName), forState: UIControlState.Normal)
setImage(UIImage(named: imageName + "_highlighted"), forState: UIControlState.Highlighted )
//3.设置背景图
setBackgroundImage(UIImage(named: backgroundImageName), forState: UIControlState.Normal)
setBackgroundImage(UIImage(named: backgroundImageName + "_highlighted"), forState: UIControlState.Highlighted)
//4.调整按钮尺寸
sizeToFit()
}
}