Swift Extension的使用场景、iOS10字体的适配

来源:互联网 发布:万能扫描软件下载 编辑:程序博客网 时间:2024/04/29 19:14

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

import UIKit

extensionUILabel{

    classfunc creatLabel(fontSize:CGFloat, title:String) ->UILabel{

        let label =UILabel()

        label.text= title

        label.font=UIFont.systemFont(ofSize: fontSize)

//这里是在iOS10中,对字体的适配,一石二鸟,用这种方式对Label进行扩展,以后就不用在创建的每一个label中判断系统,然后再来适配字体

        if#available(iOS10.0, *) {

           label.adjustsFontForContentSizeCategory=true

        }

        return label

    }

}


调用的时候

  fileprivatelazyvar nameLabel :UILabel = {

       let nameLabel =UILabel.creatLabel(fontSize:30, title:"name")

        return nameLabel

    }()

 对比之前的方法


    fileprivatelazyvar nameLabel :UILabel= {

        let nameLabel =UILabel()

       nameLabel.text="name"

        nameLabel.font =UIFont.systemFont(ofSize:30)

        if#available(iOS10.0, *) {

            label.adjustsFontForContentSizeCategory = true

        }

        return nameLabel

    }()




原创粉丝点击