当自定义委托中的属性更改时查看不更新
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 更改,请确保您的代码在主线程上运行。
我有一个 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 更改,请确保您的代码在主线程上运行。