如何慢慢填充NSProgressIndicator(进度条)从0到100?

时间:2015-08-31 07:39:56

标签: objective-c cocoa core-animation

任务: 将进度条(NSProgressIndicator)从0到100顺利进行。

问题: 进度条从0到100但不顺利。

我现在做了什么:

    // scan click on which the prgress should start
-(void)ScanNowClick:(id)sender
{
        // setting initial value of progress bar
        [progressbar setDoubleValue:0];
        // starting timer
        [NSTimer scheduledTimerWithTimeInterval:0.5
                                         target:self
                                       selector:@selector(callAfter10sec:)
                                       userInfo:nil
                                        repeats:YES];  
}

// timer that will update progress bar
-(void)callAfter10sec:(NSTimer *)time {

    double value = [progressbar doubleValue]+10;

    [[progressbar animator] setDoubleValue:value];

    if(value >= 100)
    {
       [time invalidate];
    }
}

///图层也设置

enter image description here

1 个答案:

答案 0 :(得分:0)

在处理与UI相关的更新时,您应该使用CADisplayLink而不是NSTimer

每秒调用60次链接(按屏幕刷新率)

在回调中,您应该计算推进视图的比例