0

我遇到了UIImageView延迟绘图的问题。我得到了方法[className drawPoint:(CGPoint)point](这个方法可以画点并且效果很好)

接下来,我想以 1 秒的延迟从数组中画出 3 个点,如果我使用,我将在 3 秒的延迟后[self performSelector:withObject:afterDelay:]看到所有 3 个点。UIImageView但我希望它在 1 秒点 2 之后和 1 秒点 3 之后绘制点 1。

我也试过玩,dispatch_async但没有得到想要的结果

4

2 回答 2

2

如果你想交错绘制一个视图,drawRect不是做它的地方。更好的解决方案是绘制您想要绘制的所有内容drawRect(或将您的交错元素分离到不同的视图中,每个视图都有自己的)并使用的类方法drawRect切换隐藏属性。UIViewanimateWithDuration

于 2013-06-04T06:42:39.647 回答
1

尝试使用:

 [self performSelectorInBackground:@selector(drawThreePoints) withObject:nil];

drawThreePoints 方法:

-(void)drawThreePoints{
    [NSThread sleepForTimeInterval:1];
    [self performSelectorOnMainThread:@selector(drawPoint:) withObject:POINT1 waitUntilDone:NO];
    [NSThread sleepForTimeInterval:1];
    [self performSelectorOnMainThread:@selector(drawPoint:) withObject:POINT2 waitUntilDone:NO];
    [NSThread sleepForTimeInterval:1];
    [self performSelectorOnMainThread:@selector(drawPoint:) withObject:POINT3 waitUntilDone:NO];
}

drawPoint: 方法:

-(void)drawPoint:(CGPoint)point{
     [className drawPoint:point];
}

UPD:或者,如果点来自数组,当然可以在循环中进行:)

于 2013-06-04T07:50:06.493 回答