7

矢印や箇条書きなどが必要なときに、文字列で単純な象徴的な Unicode 文字を使用できるのは素晴らしいことだといつも思っていました。グリフは、文字列の残りの部分と同じ色でレンダリングされ、シンプルでクリーンなアイコンになります。XCode の [編集] メニューにある Mac の [特殊文字] ダイアログを使用して、それらがどのように表示されるかをプレビューできました。

iOS5 では、これらのグリフはフルカラーでレンダリングされ、シンプルでクリーンではありません。これらは絵文字アイコンだと思いますか?

この変更の説明と、理想的には iOS5 を強制的に iOS2 - iOS4 の動作に戻す方法を探しています。

次に例を示します。 @"← left arrow, right arrow → airplane ✈";

編集

どうやら、テキストをレンダリングするための NSString UIKit 拡張機能 ( drawAtPoint: / drawInRect:) は、この動作を示さないようです。おそらくそれはUILabelのものですか?具体的には、UISegmentControl セグメント ボタン内と UILabel 内にあることに気付きました。

4

1 に答える 1

1

これはバグではなく、使用されているフォントが原因です。選択したフォントで使用できない文字を文字列で使用すると、iOS は自動的に別のフォントのグリフに置き換えます。

システム フォント (Helvetica) にはこれらの文字が含まれていないため、Apple がフォールバック フォントのリストを変更して、絵文字が以前にそれらの文字のフォールバックに使用していたものより上位にランク付けされたと推測しています。

これを修正するには、a) 必要な文字のバージョンがあり、b) iPhone で使用できるフォントを見つけて、デフォルトのシステム フォントの代わりにそれを使用するようにラベルを設定します。

または、UILabel サブクラスを作成し、drawRect メソッドをオーバーライドして、drawAtPoint/drawInRect メソッドを使用して文字列を描画することもできます。

于 2012-03-20T18:50:22.140 に答える