アプリケーション全体のシステム フォントを変更する方法はありますか?
アプリケーション全体のフォントを定義して、個々のラベルや個々のフォントに移動して変更する必要がないようにしたいと考えています。アプリケーション内に存在するすべてのフォントを変更する普遍的な定義が必要です。どうすればいいですか?
Pixateを使用してアプリのスタイルを設定できます。pixate を使用する場合、CSS を介して UI 要素のスタイル属性を設定できます。このようにして、カスタム フォントを使用するように UILabels や UITextField などをグローバルに設定できます。これは、フォントをグローバルにスタイル設定するための最良の方法です。
私のアプリでは、「Open Sans」を使用し、そのフォントを使用するためにすべての UILabels、UITextFields、および UITextViews をセットアップする必要がありました。
あなたの「default.css」で
label {
font-family: "Open Sans";
}
text-field {
font-family: "Open Sans";
}
text-view {
font-family: "Open Sans";
}
または何かと呼ばれる共有クラスを作成しConstants.h
ます。その中でこれを行います:
#define kStandardFont [UIFont systemFontOfSize:20]
もちろん、必要に応じてフォントを調整してください。次に、それを使用する必要があるときはいつでも(ラベルなどで)これを行います:
#import "Constants.h"
…
…
…
[label setFont:kStandardFont];
正しい答えは次のとおりだと思います。なぜそれをやりたいと思うのかを考えてから、同じ目的を達成するための他の方法を見つけてください. そして、ここにいる人々は、それらの目的を達成するための別の方法を見つけ出すのを喜んで手伝ってくれるでしょう. (たとえば、それがコニーベアの答えが効果的に示唆していることです。)
つまり、公式の SDK でシステム フォントを変更する方法はありません。UIFont の systemFontWithSize: メソッドをスウィズリングすることで、ある程度の前進ができる場合があります。メソッドのスウィズリングの詳細については、http: //www.cocoadev.com/index.pl? MethodSwizzling を参照してください。(a) これは systemFontWithSize: を使用してそのフォントを取得するものの外観を変更するだけであり、(b) これは元のフォント サイズに依存するすべての種類のものを壊す可能性があり、(c) これはうまくいく可能性があることに注意してください。 App Store から拒否されます。
これらすべての警告は、次の質問につながります。これで本当に何を達成しようとしているのですか?
いいえ、それがアプリケーションフォントではなく、システムフォントと呼ばれる理由です。
フォントは、UI の各コントロールに固有です。たとえば、各 UILabel には独自のフォント設定があります。
すべてのコントロールのフォントを変更したい場合は、すべてを変更する必要があります。