アプリに簡単な描画機能を追加していますが、ユーザーが破線を描画できるようにしたいと考えています。CAShapeLayer を追加し、パスを設定して、描画ルーチンを正常に動作させています。
ただし、破線を描画しようとすると、ユーザーが非常に高速に描画した場合にのみ破線が表示されます。ゆっくり描くと、ダッシュが束になって線がしっかりします。
ステップ 1. 新しい描画レイヤーを開始します。一部のコードは明らかに省略されています。
// CAShapeLayer
// Dashed pattern is arbitrary - I've tried a variety of values
[self.currentDrawLayer setLineDashPattern:[NSArray arrayWithObjects:
[NSNumber numberWithInt:6],
[NSNumber numberWithInt:12],
nil]];
currentPenPath = [UIBezierPath bezierPath];
[currentPenPath moveToPoint:currentPoint];
手順 2. ユーザーが描画するときにポイントを追加し、レイヤーを更新します。
[currentPenPath addLineToPoint:currentPoint];
[currentPenPath moveToPoint:currentPoint];
[[self currentDrawLayer] setPath:currentPenPath.CGPath];
ユーザーが好きなだけ遅くまたは速く描画できるようにし、描画中に一貫したダッシュを使用できるようにしたいと考えています。最初にすべてのポイントまたは何かを滑らかにする必要がありますか?
ユーザーが描くときにダッシュを描く簡単な方法はありますか?
任意のガイダンスをいただければ幸いです。