UIFont
iOS 系统中,用户可以通过 设置->显示与亮度->文字大小 来调节系统字号的大小。
此时,我们也需要跟进适配。
固定字号
字号不会跟随系统改变,适合一些复杂的 UI 效果,防止因为字号改变,而产生 UI 错乱的 BUG。
1 | //自定字号,字体跟随系统 |
Dynamic Type
使用 Dynamic Type 字号可以跟随系统设置改变,但是不支持自定义字体,只能使用系统字体。
支持 iOS7 及以上
//iOS10 以下,需要监控通知消息来进行更改 UIContentSizeCategoryDidChangeNotification
1 | //在通知方法中,更新 font |
iOS10 及以上可以直接设置
1 | label.adjustsFontContentSizeCategory = true |
下面是系统支持的相关字号
UIFontMetrics
iOS11,apple 加入了 UIFontMetrics ,终于可以支持自定义字体了。
1 | label.adjustsFontForContentSizeCategory = true |