我目前正在构建 Custom UIActivityIndicator
。为了做到这一点,我创建了以下绘制矩形函数:
-(void) drawRect:(CGRect)rect
{
CGPoint point;
NSLog(@"here %d",stage);`
CGContextRef ctx = UIGraphicsGetCurrentContext();
CGContextSetLineWidth(ctx, 2.0);
for (int i = 1 ; i<=10; ++i) {
CGContextSetStrokeColorWithColor(ctx, [[self getColorForStage:stage+i WithAlpha:0.1 *i] CGColor]);
point = [self pointOnOuterCirecleWithAngel:stage+i];
CGContextMoveToPoint(ctx, point.x, point.y);
point = [self pointOnInnerCirecleWithAngel:stage+i];
CGContextAddLineToPoint( ctx, point.x, point.y);
CGContextStrokePath(ctx);
}
stage++;
}
我加了一个NSTimer
电话[self setNeedsDisplay];
动画效果很好,但是当我将它导入到我的应用程序时,每次我滚动表格或做任何动画都会停止,直到表格停止移动。
我假设只有在 UI 完成更新后才更新我的 DrawRect 但我该如何解决它或以正确的方式做