赞
踩
便利构造函数是swift的重点。
swift并没有分类,所谓分类就是给系统类做扩展。
我们使用便利构造函数去给系统类进行拓展。
我们创建类的对象,直接使用构造函数去初始化赋值。不需要通过全局类方法去调用。使得代码更加优雅简洁。
给UIButton 添加便利构造函数
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() } class func createButton(imageName: String, bgImageName: String) -> UIButton { let btn = UIButton() 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 } }
调用UIButton(imageName: “aaaa”,bgImageName: “bbbbb”)
aaaa和bbbb是图片名
给UIColor添加便利构造函数
import UIKit
extension UIColor {
convenience init(r: CGFloat,g: CGFloat,b: CGFloat){
self.init(red: r / 255.0, green: g / 255.0, blue: b / 255.0, alpha: 1)
}
}
调用UIColor(r: 44, g:44, b:44)
UIBarButtonItem的分类扩展,便利构造函数
import UIKit extension UIBarButtonItem { convenience init(imageName: String) { let btn = UIButton() btn.setImage(UIImage(named: imageName), for: .normal) btn.setImage(UIImage(named: imageName + "_highlighted"), for: .highlighted) btn.sizeToFit() self.init(customView: btn) } /* convenience init(imageName: String) { self.init() let btn = UIButton() btn.setImage(UIImage(named: imageName), for: .normal) btn.setImage(UIImage(named: imageName + "_highlighted"), for: .highlighted) btn.sizeToFit() self.customView = btn }*/ }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。