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 = scaledFontself.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 = scaledFontself.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 = scaledFontself.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 = scaledFontself.adjustsFontForContentSizeCategory = true}
}

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

使用方法:

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

 label.applyGlobalTextStyle()

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


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部