В моем приложении я предоставляю пользователю возможность изменять шрифт всего приложения. Для этого я предоставляю пользователю список параметров (например, полужирный, полужирный, обычный, тонкий и т. Д.). Как только пользователь выбирает любой из вышеперечисленных параметров, я сохраняю это значение в 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).
Теперь, как только пользователь выбирает параметр, я сохраняю выбранное значение в локальном, как сказано ранее, и exit (0). Теперь пользователю необходимо перезапустить приложение самостоятельно.
Этот подход правильный или нет. Если нет, то предложите мне лучшее решение.
выход (0) приведет к отказу вашего приложения от яблоко –