2016-02-29 175 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更改,請確保您的代碼在主線程上運行。

相關問題