【发布时间】:2015-10-27 14:22:10
【问题描述】:
我正在尝试使用 SDWebImage 实现一个类似于圆形进度条的 instagram 以进行图像加载。 1.我正在使用这段代码,但它不能正常工作。将图像应用到图像视图后,进度条不会隐藏。
- 单元重用问题也导致了一些问题。
- 还发出警告,提示我正在尝试更新后台线程中的进度条。
我怎样才能摆脱这些问题
- (void)setImageInImageView:(UIImageView *)imgv withURLString:(NSString *)str_url {
//GuestDefaultProfilePic
[imgv sd_setImageWithURL:[NSURL URLWithString:str_url] placeholderImage:[UIImage imageNamed:@"ImageGalleryBackground"] options: SDWebImageHighPriority progress:^(NSInteger receivedSize, NSInteger expectedSize){
NSLog(@"the progress is %f", ((receivedSize*1.0f) * 100) / expectedSize);
progressView = [imgv viewWithTag:4321];
if(progressView==nil)
{
progressView = [[THCircularProgressView alloc] initWithFrame:CGRectMake(imgv.center.x - 20 , imgv.center.y-20 , 60 , 60)];
progressView.lineWidth = 5.0f;
progressView.progressColor = [UIColor whiteColor];
progressView.progressBackgroundColor = [UIColor grayColor];
progressView.centerLabelVisible = YES;
progressView.tag = 4321;
[imgv addSubview:progressView];
}
dispatch_async(dispatch_get_main_queue(), ^{
[progressView setPercentage:(receivedSize*1.0f) / expectedSize];
});
if(receivedSize >= expectedSize)
{
progressView.hidden = YES;
}
}
completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType, NSURL *imageURL){
[progressView setHidden:YES];
[progressView removeFromSuperview];
[progressView setPercentage:0];
[imgv setImage:image];
}];
}
【问题讨论】:
-
嗨,@shikhar 你有解决这个问题的办法吗?
标签: ios asynchronous progress-bar nsthread sdwebimage