UIBezierPath
指の動きに基づいてビューにいくつかの s を描画しています。
タッチのサイクル (Began/Moved/Ended) が完了するたびに、ポイントをUIBezierPath
保存し、 という配列に保存される を作成しますbezierArray
。bezierArrayColors
各パスの色を格納するという別の配列があります。
問題はこれです。クラスはdrawRect
. 私が見る限り、実行するたびにdrawRect
、これまでに作成されたすべてのパスを描画する必要があり、アプリは遅くなりました。
これが私のdrawRect
今です。私はそれがかなり不自由であることを知っていますが、これがどのように行われるかわかりません。
- (void)drawRect:(CGRect)rect {
for (int i=0; i<[self.bezierArray count]; i++) {
UIBezierPath *aPath = (UIBezierPath*)[self.bezierArray objectAtIndex:i];
UIColor *aColor = (UIColor*)[self.bezierArrayColor objectAtIndex:i];
[aPath setLineWidth:LINE_WIDTH];
[aColor setStroke];
[aPath stroke];
}
}
UIBezierPath
サブパスを使用して、異なる色または幅でa をストロークする方法はありますか? つまり、サブパスの色、幅、その他のプロパティを変更するには? UIBezierPath
これにより、複数の異なるサブパスで1 つを使用できるようになります。毎回再描画する必要なく、1 つのベジエを描画してそのままにしておくことができればいいのにと思います。私は何が欠けていますか?