问题 I tried two ways: Method 1: label.font = UIFont.preferredFont(forTextStyle: UIFontTextStyle.body) label.adjustsFontForContentSizeCategory = true This works fine, even when the preferred text size is changed in the Settings, the text size changes automatically, even before when I go back to the app. But it only works with the system font (San Francisco). Method 2: To use a custom font, I add an extension to UIFontDescriptor : //from this answer http://stackoverflow.com/a/35467158/2907715