在我的应用程序中,我给予用户更改整个应用程序的字体的选项。要做到这一点,我给用户一个选项列表(如粗体,半角,常规,薄等)。只要用户选择任何上述选项,我将该值保存在NSUserDefaults中。如何以编程方式更改完整的iOS应用程序字体
现在,随着用户选择了他的选择,所以我应该改变我的整个应用程序的字体。出于同样我创建了一个类别
#import "UILabel+Helper.h"
@implementation UILabel (Helper)
- (void)setSubstituteFontName:(NSString *)name UI_APPEARANCE_SELECTOR {
if ([name isEqual: kAppFontSFTextBold]) {
self.font = [UIFont preferredFontForTextStyle:UIFontTextStyleHeadline];
}
else if ([name isEqual:kAppFontSFTextSemiBold]) {
self.font = [UIFont preferredFontForTextStyle:UIFontTextStyleSubheadline];
}
else if ([name isEqual: kAppFontSFTextMedium]) {
self.font = [UIFont preferredFontForTextStyle:UIFontTextStyleBody];
}
else if ([name isEqual: kAppFontSFTextRegular]) {
self.font = [UIFont preferredFontForTextStyle:UIFontTextStyleCaption1];
}
else if ([name isEqual: kAppFontSFTextLight]) {
self.font = [UIFont preferredFontForTextStyle:UIFontTextStyleCaption2];
}
// self.font = [UIFont fontWithName:name size:self.font.pointSize];
}
@end
,而是为了让我的应用程序,这些变化我必须以编程方式重新启动我的应用程序和苹果不支持。读了几个答案后,我才知道我可以用exit(0)强制终止我的应用程序。
现在只要用户选择选项,我将选择的值保存在本地,如前所述并退出(0)。现在,用户必须自行重新启动应用程序。
该方法是否正确。如果没有,那么请给我一个更好的解决方案。
出口(0)将导致拒绝应用程式的从苹果 –