当自定义委托中的属性更改时查看不更新

View not updating when it's properties change in custom delegate

我有一个 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 上的进展并不活跃。有人知道这种行为吗?

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