假如同时需要几个Label,默认字体颜色、字体大小都是统一的,为了提高开发效率,同时精简代码,可以考虑给UILabel添加分类,提供初始化方法
Swift:可以利用重载构造函数或者便利构造函数
OC:可以通过自定义构造函数
在Swift中,还可以通过便利构造函数为Label实现自动换行、动态行高并设置Label宽度的功能
如果不需要设置宽度,传入0即可
extension UILabel {
convenience init(textFont: CGFloat,textColor: UIColor,maxWidth: CGFloat = 0){
self.init()
self.font = UIFont.systemFontOfSize(textFont)
self.textColor = textColor
if maxWidth > 0 {
self.preferredMaxLayoutWidth = maxWidth
self.numberOfLines = 0
}
}
}
这样,在初始化Label 的时候,通过
convenience init(textFont: CGFloat,textColor: UIColor,maxWidth: CGFloat = 0)
便利构造函数为UILabel提供了
convenience init(textFont: CGFloat,textColor: UIColor)
和
convenience init(textFont: CGFloat,textColor: UIColor,maxWidth: CGFloat = 0)
两个初始化方法