Inside settings->general->text size, after changing the text size, I'd have to exit my own app to have the sizes applied to
[UIFont preferredFontForTextStyle:..]
Is there a delegate or notification to notify my app to re-apply the new sizes?
Update: I tried the following but interestingly, the font size will apply after I BG and launch the app TWICE.
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(fromBg:) name:UIApplicationDidBecomeActiveNotification object:nil];
}
-(void) fromBg:(NSNotification *)noti{
self.headline1.font = [UIFont preferredFontForTextStyle:UIFontTextStyleHeadline];
self.subHeadline.font = [UIFont preferredFontForTextStyle:UIFontTextStyleSubheadline];
self.body.font = [UIFont preferredFontForTextStyle:UIFontTextStyleBody];
self.footnote.font = [UIFont preferredFontForTextStyle:UIFontTextStyleFootnote];
self.caption1.font = [UIFont preferredFontForTextStyle:UIFontTextStyleCaption1];
self.caption2.font = [UIFont preferredFontForTextStyle:UIFontTextStyleCaption2];
// [self.view layoutIfNeeded];
}
You listen for the Size Change Notification on UIContentSizeCategory.
Swift 3.0:
NSNotification.Name.UIContentSizeCategoryDidChange
Swift 4.0 or later:
UIContentSizeCategory.didChangeNotification