iPhoneアプリケーションのためのシステムフォントを変更 - アプリケーション全体
質問
私はアプリケーション全体のシステムフォントを変更することができます方法はありますか?
私は、私はそれを変更する個々のラベルまたは個々のフォントに行く必要はありませんように、アプリケーション全体のフォントを定義します。私は、アプリケーション内に存在するすべてのフォントを変更します一般的な定義をしたいと思います。私はこれを行う方法を教えてください。
解決
Constants.h
か何かと呼ばれる共有クラスを作成します。それがこれを行うには:
#define kStandardFont [UIFont systemFontOfSize:20]
もちろん、あなたはそれがために必要なものであることを、フォントを調整します。その後、いつでもあなたがこれを行う(ラベルまたは任意で)それを使用する必要があります:
#import "Constants.h"
…
…
…
[label setFont:kStandardFont];
他のヒント
あなたは、あなたのアプリのスタイルを Pixate を使用することができます。 pixateを使用するときは、CSSを経由して、あなたのUI要素のスタイル属性を設定することができます。 この方法では、あなたのカスタムフォントを使用するために、セットアップあなたのUILabelsで、UITextFieldなどをグローバルにすることができます。 これは、はるかにあなたのフォントのスタイルをグローバルにするための最良の方法です。
私のアプリでは、私は、そのフォントを使用するために、すべての私のUILabels UITextFieldsとUITextViewsを「オープンなき」とセットアップを使用していた。
あなたの "default.css" で
label {
font-family: "Open Sans";
}
text-field {
font-family: "Open Sans";
}
text-view {
font-family: "Open Sans";
}
私は、正しい答えがあると思う:それをしないでください!あなたはそれをしたいと思う理由を把握して、同じ目的を達成するためにいくつかの他の方法を考え出します。そして、ここの人々は、それらの端に別の方法を考え出す助けて幸せになります。 (例えば、それがconeybeareの答えが効果的に提案するものです。)
言った...システムフォントを変更するには、公式SDKの方法はありませんすべての。 // WWW: - HTTPを参照してください方法:あなたはUIFontのsystemFontWithSizeをスウィズルことにより、いくつかの前進を作ることができるかもしれません.cocoadev.com / index.pl?MethodSwizzling の方法スウィズリング上の多くのため。覚えておいてください(a)は、これが唯一のsystemFontWithSizeを使用しています何の外観を変更します。そのフォントを取得するには、(b)は、これは元のフォントサイズを有するに依存してあらゆる種類のものを壊すかもしれないし、(c)は、これがうまくかもしれませんあなたは、App Storeから拒否されます。
これらのすべての警告は、質問まで追加:何ですか?あなたは本当にこれを達成しようとしている。
少なくともUILabel
sのために動作するようです。
@interface UIFont (mxcl)
@end
@implementation UIFont (mxcl)
+ (id)systemFontOfSize:(CGFloat)sz {
return [UIFont fontWithName:@"AmericanTypewriter" size:sz]
}
+ (id)boldSystemFontOfSize:(CGFloat)sz {
return [UIFont fontWithName:@"AmericanTypewriter-Bold" size:x]
}
@end
はありません - それは、のシステムと呼ばれる理由です。のフォントではなく、のアプリケーションのフォント
。フォントは、UIの各コントロールに固有のものです。例えば、各UILabelは独自のフォント設定を持っています。
あなたはすべてのコントロールのフォントを変更したい場合は、あなたがそれらすべてを変更する必要があります。