extension UIBarButtonItem {
convenience init(imageName: String,hightImageName : String = "",size : CGSize = CGSize.zero) {
// 1.创建UIButton
let btn = UIButton()
// 2.设置btn的图片
btn.setImage(UIImage(named: imageName),for: UIControlState())
if hightImageName != "" {
btn.setImage(UIImage(named: hightImageName),for: .highlighted)
}
// 3.设置btn的尺寸
if size == CGSize.zero {
btn.sizeToFit()
} else {
btn.frame = CGRect(origin: CGPoint.zero,size: size)
}
// 4.创建UIBarButtonItem
self.init(customView : btn)
}
}
格式:extension : 扩展对象 convenience init() 重写构造函数,默认参数写法 : 字符串 = "" ,默认参数的好处:如果不需要这个参数则可以不填写,让方法更简洁、灵活。例如以上代码如果你不需要高亮图片,也不需要size,那么直接这样调用:
navigationItem.leftBarButtonItem = UIBarButtonItem(imageName: "logo")
2.pageController的封装
-
分为titleView和contentView两部分封装。