2016-02-29 84 views
1

我有AppDelegate的ACPDownloadView实例。它显示下载进度。当我在视图控制器中更新它的进度值时,它工作正常。在自定义代理中更改属性时不会更新

appdelegate.downloadVew=[[ACPDownloadView alloc] initWithFrame:CGRectMake(0, 0, 30, 30)]; 
appdelegate.downloadVew.backgroundColor=[UIColor clearColor]; 
progressBtn= [[UIBarButtonItem alloc] initWithCustomView:appdelegate.downloadVew]; 
ACPIndeterminateGoogleLayer * layer = [ACPIndeterminateGoogleLayer new]; 
[layer updateColor:[UIColor blueColor]]; 
[appdelegate.downloadVew setIndeterminateLayer:layer]; 
[appdelegate.downloadVew setIndicatorStatus:ACPDownloadStatusRunning]; 
[appdelegate.downloadVew setProgress:0.0 animated:NO]; 

现在,我有一个委托方法,当进度更新时调用。

-(void)progressAddChannel:(NSProgress *)uploadProgress{ 

     float prog=uploadProgress.fractionCompleted; 

     [appdelegate.downloadVew setProgress:prog animated:YES]; 
    [appdelegate.downloadVew layoutIfNeeded]; 
    NSLog(@"%f",prog); 

}

此代码执行和显示的进度正确的值。但是这一进展并没有激发appdelegate.downloadVew的活力。有人知道这种行为吗?

+0

您是否检查代码是否在主线程上运行? – Jelly

+0

不,我没有。我现在检查。谢谢。 – bisma

+1

非常感谢。这是我的问题。我没有在MainThread上调用它。 – bisma

回答

1

由于您正在进行UI更改,请确保您的代码在主线程上运行。

相关问题