カスタムUIViewを含むUIScrollViewがあります。UIViewで、drawRectをオーバーライドして、CGContextStrokePathを使用してパスを描画しています。ズームの動作を少し変更したいと思います。ピンチズームアウトすると、画面にさらに多くのパスが表示されます。これは私が望んでいることですが、ユーザーがはっきりとわかるように、ズームアウトしても線幅が縮小しないようにしたいのです。
私はこれをやろうと思っていました(myUIViewズームターゲットは_lineViewと呼ばれます)
-(void)scrollViewDidZoom:(UIScrollView *)pScrollView
{
_lineView.zoomScale = _scrollView.zoomScale;
[_lineView setNeedsDisplay];
}
次に、_lineView drawRectメソッドで適切な線のストロークサイズを計算するだけで、ズームアウトしたときに一定の線幅の効果が得られます。
これは非常に遅く、drawrectが1秒間に何度も呼び出されるように最適化されていないため、これが予想されることを読みました。
次に、代わりにGLKViewを使用して、すべてをopenglで直接レンダリングすることを検討し始めました。これに伴う問題は、すべてのズームとパンを自分で実装する必要があることです(UiScrollViewで無料で入手できるすべての素敵なズームとパンバウンス効果を使用)。また、opengl、ボタンなどで使用したいすべてのコントロールを実装する必要があります。
Quartz2dを使用しながらこれを行う方法はありますか?openglは私に多くの力を与えるように感じますが、そのルートをたどると、アプリの残りの部分を完了するのにはるかに長い時間がかかります。