8

drawAtPoint:、drawInRect:を使用して文字列を描画する場合、さらにUILabelsのtextプロパティを設定する場合でも、テキストがわずかにぼやけて表示されることがあります。

私はほとんどの場所でHelveticaを使用する傾向があり、特定のフォントサイズにより、シミュレーターとデバイスの両方である程度のぼやけが発生することに気付きました。

例えば:

UIFont *labelFont = [UIFont fontWithName:@"Helvetica-Bold" size:12];

結果のラベルのテキストがわずかにぼやけます。

UIFont *labelFont = [UIFont fontWithName:@"Helvetica-Bold" size:13];

鮮明なテキストになります。

私の質問は、なぜこれが発生するのですか?そして、それは書体に最適なフォントサイズを選択するだけの問題ですか?もしそうなら、最適なフォントサイズは何ですか?

更新:ぼやけを引き起こしているのはおそらくフォントサイズではないようです。rectの中心が分数点である可能性があります。これが私がAppledevフォーラムで見つけたコメントです:

位置を確認してください。小数ピクセルである可能性があります。中心を整数値に変更します。

すべてのポイントの値を四捨五入しましたが、テキストがぼやけたままになる場所がまだあります。誰かが以前にこの問題に遭遇したことがありますか?

4

6 に答える 6

3

NSIntegralRect() を見たいと思うかもしれませんが、それはあなたが望むことをします。

于 2009-03-24T22:25:10.880 に答える
2

私もこの問題を抱えていますが、私の解決策は異なり、誰かを助けるかもしれません。UIView私の問題は、オブジェクトのサイズを変更した後のテキストのぼやけでした。その後TouchesBeganCGAffineTransformMakeScaleに戻りましCGAffineTransformIdentityTouchesEnded

さまざまなテキストサイズとxおよびyの中心点の丸めの両方を試しましたが、どちらも機能しませんでした。私の問題の解決策は、私の幅と高さに均等なサイズを使用することでしたUIView

お役に立てれば ....

于 2010-09-30T13:43:26.087 に答える
2

これが正しくない場合は、私の無知を許してください。私はiPhoneやCocoaについて何も知りません。

テキストを四角形の中央に配置するように要求する場合は、四角形の幅や高さが偶数であることを確認する必要がある場合もあります。

于 2009-03-19T22:07:05.397 に答える
0

私の実験によると、一部のフォントは特定のサイズで明確にレンダリングされません。たとえば、Helvetica-Bold は "." をレンダリングしません。16.0f では十分ですが、18.0f ではクリアです。(よく見ると「.」の一番上のピクセルがぼやけています。)

それに気づいた後、UIView が動的にレンダリングされるため、その UIView を見るたびに腹が立ちました。

于 2009-07-06T13:54:47.070 に答える