0

我正在为我的应用程序创建一个自定义进度条。

我已经分类UIView,所有的绘图都在drawRect.

现在,自定义进度条有 6 个属性,它们都改变了它的显示方式。

minProgress
maxProgress
progress
onColor
offColor
numberOfSections

这些都由子类设置为默认值,但是在控制器的 viewWillAppear 方法中有几个地方所有这些值都被更改了。

目前我已经为所有看起来像这样的属性编写了setter函数......

- (void)setProgress:(float)progress
{
    _progress = progress;

    [self setNeedsDisplay];
}

但这是否意味着 drawRect 方法会在实际显示在屏幕上之前被调用 6 次?这似乎是一种不好的做法。

我对此是否正确?还有另一种方法吗?

4

1 回答 1

3

setNeedsDisplay只是将您的视图标记为在下一个绘制阶段需要重绘。如果您在下一次抽奖之前多次调用它,它仍然只会被抽一次。

于 2013-03-04T19:13:33.560 回答