您需要多次重繪視圖,每次繪製更多路徑。要做到這一點,您需要使用某種計時器,並有一種方法來跟蹤您正在繪製的路徑。
要跟蹤路徑,您可以使用NSInteger
實例變量,並在每次繪製其他路徑時增加它,然後在-drawRect:
中檢查該變量的值並繪製適當數量的路徑。
然後你會實現一個方法來更新ivar並重新繪製視圖。這裏是一個非常簡單的版本:
//assume pathsToDraw is an NSInteger ivar
//and that myArrayOfBezierPaths is an NSArray ivar
//containing UIBezierPath objects
- (void)startDrawingPaths
{
//draw the first path
pathsToDraw = 1;
[view setNeedsDisplay];
//schedule redraws once per second
[NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(updateView:) userInfo:nil repeats:YES];
}
- (void)updateView:(NSTimer*)timer
{
//increment the path counter
pathsDrawn++;
//tell the view to update
[view setNeedsDisplay];
//if we've drawn all our paths, stop the timer
if(pathsDrawn >= [myArrayOfBezierPaths count])
{
[timer invalidate];
}
}
繪圖方法會是這個樣子:
- (void)drawRect:(CGRect)rect
{
NSInteger i = 0;
for (i = 0; i < pathsDrawn; i++)
{
UIBezierPath * path = [myArrayOfBezierPaths objectAtIndex:i];
path.lineWidth=3;
[path stroke];
}
}
至於顏色的話,你要創建的路徑,這樣就可以使他們任何顏色你喜歡。