2

私は、iOS アプリケーションがどの程度国際化されているかを判断しようとしていますが、次のようなコードのインスタンスをいくつか見つけました。

[_lblTitle setFont:[UIFont fontWithName:@"HelveticaNeue-Bold" size:18.0]];

他のプラットフォームでは、これはベスト プラクティスではないと思います。たとえば、特定の言語のフォント サイズを小さくしたい場合 (テキストの拡張のため)、または太字を削除したい場合 (たとえば、2 バイト言語の場合) は、コードの変更が必要になります。

質問 - これは iOS のベスト プラクティスですか? そうでない場合、代替手段は何ですか?

免責事項 - 私は iOS 開発にまったく詳しくありません。

4

1 に答える 1

1

iOS は、この種のことに関して他のプラットフォームほど用途が広くありません。コードでサイズとフォントを設定することは、クラスまたは外部 Contanst クラスのいずれかで、または使用している場合は Interface Builder で設定するのが一般的です。それ。

個人的な好みとして、Interface Builder でフォントを設定すると見にくくなります。クラスですべてのフォントを設定して、それらをまとめて表示することを好みます。次に、フォントを変更すると、残りのフォントも同時に変更されます。xib のすべての要素を 1 つずつ変更する必要はありません。

どのソリューションでも、フォントを変更するたびに再コンパイルする必要があります。

さまざまな言語に適応させるという点で私が考えることができるのは、テキストが設定されているラベルのサイズを次のように変更することです。

myLabel.minimumFontSize = 8.;
myLabel.adjustsFontSizeToFitWidth = YES;

これにより、テキストが収まらない場合に備えて、最小で 8 に縮小されます。

もう 1 つの方法は、携帯電話の言語を検出し、そこでフォントを設定することです。次に例を示します。

NSString * language = [[NSLocale preferredLanguages] objectAtIndex:0];

結果に応じて、言語に対して次のようにします。

[_lblTitle setFont:[UIFont fontWithName:@"HelveticaNeue-Bold" size:18.0]];

これは、たとえば別の場合です。

[_lblTitle setFont:[UIFont fontWithName:@"HelveticaNeue" size:15.0]];
于 2013-07-19T13:06:30.173 に答える