在 iOS 7 之后我们可以用 UIFont 的preferredFontForTextStyle: 类方法来指定一个样式,并让字体大小符合用户设定的字体大小。目前可供选择的有六种样式:
- UIFontTextStyleHeadline
- UIFontTextStyleBody
- UIFontTextStyleSubheadline
- UIFontTextStyleFootnote
- UIFontTextStyleCaption1
- UIFontTextStyleCaption2
当在设置里更改时,如果自己的代码中有用到UIFont.preferredFontForTextStyle 的,给所在的View或VC添加UIContentSizeCategoryDidChangeNotification通知,方法里重新设置一下font即可。即:
NSNotificationCenter.defaultCenter().addobserver(self,selector: "preferredContentSizeChanged:",name: UIContentSizeCategoryDidChangeNotification,object: nil) func preferredContentSizeChanged(noti : NSNotification){ userNameLbl.font = UIFont.preferredFontForTextStyle(UIFontTextStyleSubheadline) }