1

MKMapView でピンが初めて選択された直後に、UILabel を leftCalloutAccessoryView として MKAnnotationView に追加しようとしています。ラベルの追加は問題ではありません。吹き出しが選択されて開きます。これは、吹き出しビューにラベルを追加するときです。吹き出しはスライド アニメーションで自動的に左に展開され、2 本の線を含む新しいラベルが表示されます。残念ながら、最初にそのピンに関する特定の情報が必要なため、ピンが選択された後にラベルを追加する必要があります。

問題は、このラベルのテキストが、正しくレンダリングされていないように、多少「ぼやけている」ことです。吹き出しの選択を解除して再度選択すると、すべてが正しく描画されます。

ラベルを追加する方法は次
のとおりです。 MKPinAnnotationView の作成中に、ビューの「選択された」プロパティのオブザーバーとして登録します。これは、ピンを選択するデリゲート メソッドがないためです。ビューでピンが選択されると、オブザーバー メソッドが起動し、テキスト ラベルをビューに追加するだけです。(2 行の UILabel を作成し、明確な背景色と太字の白いシステム フォントを作成し、leftCalloutAccessoryView を設定し、ラベルを解放します)。setNeedsDisplay、setNeedsLayout、および他のいくつかのことを試しましたが、ピンが2回目に選択されるまで、ラベルのテキストがぼやけています。

このラベルをぼやけずに正しく描画する方法はありますか?

前もって感謝します!

4

1 に答える 1

3

ラベルがピクセル境界に配置されていますか? ラベル フレームをプログラムで計算し、計算が原点に対して整数以外の値を返す可能性があることを考慮していない場合、ぼやけが見られます。

于 2009-12-18T14:33:03.227 に答える