さまざまなパスの描画を表示するアプリ (XCode 4.6) を作成しています。今のところ、直線とベジェ パスだけですが、最終的にはより複雑になります。私は現在レイヤーを使用しておらず、表示は実際には非常にシンプルです。
私の drawRect コードは次のようになります。
- (void)drawRect:(CGRect)rect :(int) points :(drawingTypes) type //:(Boolean) initial
{
//CGRect bounds = [[UIScreen mainScreen] bounds];
CGRect appframe= [[UIScreen mainScreen] applicationFrame];
CGContextRef context = UIGraphicsGetCurrentContext();
_helper = [[Draw2DHelper alloc ] initWithBounds :appframe.size.width :appframe.size.height :type];
CGPoint startPoint = [_helper generatePoint] ;
[_uipath moveToPoint:startPoint];
[_uipath setLineWidth: 1.5];
CGContextSetStrokeColorWithColor(context, [UIColor lightGrayColor].CGColor);
CGPoint center = CGPointMake(self.center.y, self.center.x) ;
[_helper createDrawing :type :_uipath :( (points>0) ? points : defaultPointCount) :center];
[_uipath stroke];
}
- (void)drawRect:(CGRect)rect
{
if (_uipath == NULL)
_uipath = [[UIBezierPath alloc] init];
else
[_uipath removeAllPoints];
[self drawRect:rect :self.graphPoints :self.drawingType ];
}
実際のパスは、ヘルパー オブジェクト (_helper) によって生成されます。このパスの表示をアニメートして、描画中に数秒かけてゆっくりと表示したいのですが、これを行う最も簡単で最速の方法は何ですか?