CATiledLayer でレンダリングされた pdfpage を含むスクロールビューがあります。PDF ページに何かを描画したいので、オーバーレイ レイヤーを作成しました。グラフィックをベクトル化して表示する必要があるため、オーバーレイ レイヤーに CATiledlayer を使用することにしました。唯一の問題は、描画が非常に遅いことです (私は beizerpath を使用して描画しています)。次に、ズームインおよびズームアウトするときに表示される高さと幅を持つオーバーレイ レイヤーを作成して最適化しようとしました。バインドされたコンテンツ全体のオーバーレイを作成します。しかし、まだ運がありません。CALayer を試してみたいのですが、描画パスがぼやけてピクセル化されるだけなので、これを改善する方法がわかりません。drawinrect も試しましたが、なぜかうまくいかないようです。
1 に答える
1
ペンが動くたびにパス全体を再描画する必要があるため、bezierpath を使用して注釈を描画しないことをお勧めします。CGContextAddQuadCurveToPoint を使用して、現在の線分のみを描画するとよいでしょう。
- touchMoved で、現在のポイントと 2 つの前のポイントを取得します
- これらのポイントを使用して、線を描画する領域を取得します
- setNeedsDisplayAtRect を使用して drawRect のその領域に描画します
- drawRect 内で、パスの最後に移動し、CGContextAddQuadCurveToPoint を使用して新しい行を追加します。
于 2012-08-02T16:58:26.940 に答える