0

我正在使用 SDWebImage 库在我的 iOS 应用程序中缓存图像。现在从服务器加载图像时,我在图像视图上显示了一个活动指示器。我正在使用以下代码

__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];
  }];

它通常工作正常。但是对于某些图像网址,它没有加载图像,因此它永远不会完成块并且活动指示器正在无限旋转。那么有没有办法设置超时,以便在一定时间后给我一个错误或类似的东西,这样我就可以停止活动指示器。

有点银 请帮忙。

4

1 回答 1

0

您应该检查 URL 是否有效,因为当您传递nilsetImageWithURL完成块时不会被调用。

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
于 2013-04-26T11:24:07.060 回答