当前位置:   article > 正文

swift5.给系统类添加便利构造函数_siwft 添加系统方法

siwft 添加系统方法

swift5.给系统类添加便利构造函数

便利构造函数是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
        
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22

调用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)
    }
}

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

调用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
     }*/
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/煮酒与君饮/article/detail/777560
推荐阅读
相关标签
  

闽ICP备14008679号