私のアプリでは、ユーザーにアプリ全体のフォントを変更するオプションを与えました。そうするために、私はオプションのリスト(太字、半綴じ、普通、薄いなど)をユーザに与えています。ユーザーが上記のオプションのいずれかを選択するとすぐに、その値をNSUserDefaultsに保存します。プログラムで完全なios appフォントを変更する方法
ユーザーが自分のオプションを選択したので、アプリのフォント全体を変更する必要があります。同じものについてはカテゴリを作成しました
#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
私のアプリでこれらの変更を行うには、プログラムを再起動する必要があり、Appleはそれをサポートしていません。いくつかの回答を読んだ後、私は強制的にexit(0)を使ってアプリケーションを終了できることを知りました。
ユーザーがこのオプションを選択するとすぐに、私は前述のように選択した値をローカルに保存して終了(0)します。今すぐユーザーは、独自のアプリケーションを再起動する必要があります。
このアプローチは正しいかどうかですか。そうでない場合は、より良い解決策を提案してください。
出口は(0)あなたのアプリケーションの拒絶からにつながる見ます林檎 –