3

PDFページを表示するために使用されるCATiledLayerがあります(このCATiledLayerは、UIScrollViewのサブビューであるUIViewのレイヤータイプです)。このページにオーバーレイマーカーを追加したいと思います。そこで、CATiledLayerにサブレイヤーを追加します。このサブレイヤーは、再び異なるマーカーのレイヤーをホストし、グループ化レイヤーとして機能します。

グラフィカルに、私は持っています:(私はCALayersでもある複数のマーカーを持っていることに注意してください、これは結局のところアスキーアートです)

pdf page (CATiledLayer)
----------------------
|  CALayer           |
|  +---------+       |
|  |  +----+ |       |
|  |  |mker| |       |
|  |  +----+ |       |
|  +---------+       |
|                    |
----------------------

pdfを描画するためのビューで正規のdrawLayer:inContext:を設定しました。

ズームして詳細を表示すると、PDFは正しくレンダリングされますが、マーカーは拡大縮小されます。CALayerの境界に何をしても、マーカーは常に大きくなり、ギザギザに見えます。

マーカーを初期化してビューを描画したときに最初に表示したときと同じサイズにしたいのですが。これは可能ですか?または私は間違ったアプローチを使用していますか?drawLAyer:inContext:メッセージに含まれているCALayerに対して特別な描画を行う必要がありますか?

ご覧のとおり、問題を解決するために欠けていることがあります。あなたが提供するどんな助けにも感謝します。

4

1 に答える 1

1

マーカーは、スーパーレイヤーの変換を継承するため、スケーリングされます。CALayer拡大縮小したくないマーカーやその他のオブジェクトを含む別のトップレベルを作成し、その上にオーバーレイしCATiledLayerます。

于 2010-06-12T03:29:43.463 に答える