私は個人的なサイドプロジェクトとしてシンプルなiPhoneの描画プログラムを作っています。クォーツ2DのシンプルなiPhoneの描画アプリ
サブクラス化されたUIViewでtouchesイベントをキャプチャし、実際のものを別のCGLayerにレンダリングします。各レンダリングの後、[self setNeedsLayout]を呼び出し、drawRect:メソッドでCGLayerを画面コンテキストに描画します。
これはすべて機能し、矩形を描画するのに適しています。しかし、私はちょうど他の多くのiPhoneアプリケーションのような単純な "フリーハンド"モードが欲しいです。しかし、1秒以上描画した後、パフォーマンスが低下する無残
CGMutablePathRef path; -(void)touchBegan { path = CGMutablePathCreate(); } -(void)touchMoved { CGPathMoveToPoint(path,NULL,x,y); CGPathAddLineToPoint(path,NULL,x,y); } -(void)drawRect:(CGContextRef)context { CGContextBeginPath(context); CGContextAddPath(context,path); CGContextStrokePath(context); }
を:私はこれを行うには考え
方法はCGMutablePathを作成し、簡単にすることでした。
変数が不透明でない場合は、オフラインCGLayerに各行を描画します。不透明度が100%未満であると、線を結んでいるドットが画面上に残ります。私はCGContextSetBlendingMode()を見てきましたが、うーん、私は答えを見つけることができません。
誰でも正しい方向に向けることができますか?他のiPhoneアプリでもこれを非常に効率的に行うことができます。