1

大きなテーブルビューでのスクロールを高速化するために、いくつかの異なる UIImageViews と UILabels を使用して合成画像を事前にレンダリングしています。残念ながら、メインの UILabel は、同じビューの他の UILabels と比べて少しぼやけて見えます。

黒い文字「PLoS ONE」は UILabel にあり、「Medical」や「Medicine」という単語よりもはるかにぼやけて見えます。「PLoS one」のロゴも同様にぼやけているのでしょうが、鮮明な文字ほど目立ちません。
雑誌の表紙全体は、UIButton に割り当てられた単一の UIImage です。

PLoS ONE のラベルはよりぼやけています
(ソース: karlbecker.com )

これは、画像を描画するために使用しているコードです。magazineView は、125 x 151 ピクセルの長方形です。さまざまなスケーリング品質を試しましたが、何も変わりませんでした。スケーリングはまったく異なるべきではないため、そうすべきではありません。この画像を割り当てている UIButton は、magazineView とまったく同じサイズです。

    UIGraphicsBeginImageContextWithOptions(magazineView.bounds.size, NO, 0.0);
    [magazineView.layer renderInContext:UIGraphicsGetCurrentContext()];
    [coverImage release];
    coverImage = UIGraphicsGetImageFromCurrentImageContext();
    [coverImage retain];
    UIGraphicsEndImageContext();

ぼやけている理由はありますか?

イメージ コンテキストを開始してすぐにレンダリングする場合、レンダリングは偶数ピクセルで行われますか?それとも、レンダリングが行われる場所を手動で設定する必要がありますか?

4

3 に答える 3

6

ラベル座標が整数値であることを確認してください。整数でない場合、ぼやけて表示されます。

于 2012-04-16T04:30:21.887 に答える
1

詳細については、CGRectIntegral を使用する必要があると思います: CGRectIntegral の使用法は何ですか? CGRectIntegral の参照

于 2012-04-16T05:51:38.760 に答える