我正在使用SDWebImage库在我的iOS应用程序中缓存图像。现在当从服务器加载图像时,我在imageview上显示了一个活动指示器。我正在使用以下代码
__block UIActivityIndicatorView *activityIndicator = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray];
activityIndicator.center = self.serviceImageView.center;
activityIndicator.hidesWhenStopped = YES;
[activityIndicator startAnimating];
[self.serviceImageView addSubview:activityIndicator];
[self.serviceImageView setImageWithURL:[NSURL URLWithString:[self.service valueForKey:@"image"]] placeholderImage:nil completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType) {
[activityIndicator removeFromSuperview];
}];
一般都很好。但对于某些图像,它没有加载图像,所以它永远不会完成块和&活动指标无限旋转。 那么有没有办法设置超时,以便在一定时间后它给我一个错误或类似的东西,所以我可以停止活动指示器。
有点睿智。请帮忙。
答案 0 :(得分:0)
您应该检查网址是否有效,因为当您将nil
传递给setImageWithURL
时,将不会调用完成区块。
NSURL* url = [NSURL URLWithString:[self.service valueForKey:@"image"]];
if (url)
[self.serviceImageView setImageWithURL:url placeholderImage:nil completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType) {
[activityIndicator removeFromSuperview];
}];
I