Swift中Category的使用

在项目开发中,经常会遇到同一个控件被频繁的创建,可能他们之间只是某些属性值不同而已,这个时候我们可以使用工厂模式去创建这些控件,也可以使用Category,在这里我们介绍如何使用Category

例如:按钮UIButton被频繁创建好多次,这时我们可以创建一个Swift文件:

UIButton+Category.Swift

import UIKit

extension UIButton {

    //把按钮直接不同属性的名字传进来,在这里我们传进来图片名字和标题
 class func creatButton(imageName:String,title:String) -> UIButton { let button = UIButton() button.setimage(UIImage(named: imageName),forState: UIControlState.normal) button.setTitle(title,forState: UIControlState.normal) button.titleLabel?.font = UIFont.systemFontOfSize(12) button.setTitleColor(UIColor.darkGrayColor(),forState: UIControlState.normal) button.titleEdgeInsets = UIEdgeInsets(top: 0,left: 10,bottom: 0,right: 0) return button } }

在创建按钮的地方,本来要这么写

private lazy var button: UIButton {
    let btn = UIButton()
    btn.setimage(UIImage(named: "icon_button"),forState: UIControlState.normal)
    btn.setTitle("进入",forState: UIControlState.normal)
    btn.titleLabel?.font = UIFont.systemFontOfSize(12)
    btn.setTitleColor(UIColor.darkGrayColor(),forState: UIControlState.normal)
    btn.titleEdgeInsets = UIEdgeInsets(top: 0,left: 10,bottom: 0,right: 0)
    return btn
}()

现在可以这么写

private lazy var button: UIButton = UIButton.creatButton("icon_button",title: "进入")

如果个别按钮需要额外加一些属性,可以这么写

private lazy var button: UIButton {
    let btn = UIButton = UIButton.creatButton("icon_button",title: "进入")
    //红色按钮
    btn.backgroundColor = UIColor.redColor()
    return btn
}()

相关文章

软件简介:蓝湖辅助工具,减少移动端开发中控件属性的复制和粘...
现实生活中,我们听到的声音都是时间连续的,我们称为这种信...
前言最近在B站上看到一个漂亮的仙女姐姐跳舞视频,循环看了亿...
【Android App】实战项目之仿抖音的短视频分享App(附源码和...
前言这一篇博客应该是我花时间最多的一次了,从2022年1月底至...
因为我既对接过session、cookie,也对接过JWT,今年因为工作...