ios跟随系统设置字体大小

extension UILabel {
    func applyGlobalTextStyle() {
        let font = self.font ?? UIFont.preferredFont(forTextStyle: .body)
        let fontMetrics = UIFontMetrics(forTextStyle: .body)
        let scaledFont = fontMetrics.scaledFont(for: font)
        self.font = scaledFont
        self.adjustsFontForContentSizeCategory = true
    }
}

extension UIButton {
    func applyGlobalTextStyle() {
        let font =  self.titleLabel?.font ?? UIFont.preferredFont(forTextStyle: .body)
        let fontMetrics = UIFontMetrics(forTextStyle: .body)
        let scaledFont = fontMetrics.scaledFont(for: font)
        self.titleLabel?.font = scaledFont
        self.titleLabel?.adjustsFontForContentSizeCategory = true
    }
}

extension UITextField {
    func applyGlobalTextStyle() {
        let font = self.font ?? UIFont.preferredFont(forTextStyle: .body)
        let fontMetrics = UIFontMetrics(forTextStyle: .body)
        let scaledFont = fontMetrics.scaledFont(for: font)
        self.font = scaledFont
        self.adjustsFontForContentSizeCategory = true
    }
}


extension UITextView {
    func applyGlobalTextStyle() {
        let font = self.font ?? UIFont.preferredFont(forTextStyle: .body)
        let fontMetrics = UIFontMetrics(forTextStyle: .body)
        let scaledFont = fontMetrics.scaledFont(for: font)
        self.font = scaledFont
        self.adjustsFontForContentSizeCategory = true
    }
}

上面的方法会基于自己设置的字体大小,然后根据系统设置的字体大小进行计算得到最终的字体大小。

使用方法:

   lazy var subTitleLabel:UILabel = {
        var label = UILabel()
        label.numberOfLines = 2
        label.font = UIFont.systemFont(ofSize: 14.0)
        label.textColor = UIColor.color999
        label.applyGlobalTextStyle()
        return label
    }()

 label.applyGlobalTextStyle()

  label.font = UIFont.systemFont(ofSize: 14.0),为初始值,系统更改字体后回到App页面就会刷新字体大小

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值