0

我使用 SDWebimages 类将图像从 url 加载到图像视图。但是加载仍然需要时间。

 NSString *filePath1 = [NSString stringWithFormat:@"%@",pathimage1];
 [cell.image1 setImageWithURL:[NSURL URLWithString:filePath1]placeholderImage:[UIImage imageNamed:@"placeholder.png"]];

谁能告诉我我做错了什么?或者从 url 加载图像的最佳方式。

4

2 回答 2

0

尝试这个 :

NSString *filePath1 = [NSString stringWithFormat:@"%@",pathimage1];

[cell.image1 setImageWithURL:[NSURL URLWithString:filePath1]]
                placeholderImage:[UIImage imageNamed:@"placeholder.png"]
                         success:^(UIImage *image, BOOL cached) 
        {
            dispatch_async(dispatch_get_main_queue(), ^{
                cell.image1.image = image;
            });
            NSLog(@"success Block");
        }
                         failure:^(NSError *error) 
        {
            NSLog(@"failure Block");
        }];
于 2013-08-23T11:51:18.020 回答
0

从网络加载图像可能需要很长时间才能加载,原因有几个,其中两个最明显的是

  • 设备上的互联网连接缓慢(Wifi / 3G / 2G)。
  • 服务器超载。

如果您可以控制服务器和存储在其上的图像,为了加快速度,您总是可以最初加载一个较小的版本(低质量预览/缩略图),然后在需要时加载一个更大/全尺寸的版本:

typedef enum {
  MyImageSizeSmall,
  MyImageSizeMedium,
  MyImageSizeLarge
} MyImageSize;

-(void)requestAndLoadImageWithSize:(MyImageSize)imageSize intoImageView:(UIImageView *)imageView
{
  NSString *imagePath
  switch (imageSize)
  {
    case MyImageSizeSmall:
      imagePath = @"http://path.to/small_image.png";
    break;
    case MyImageSizeMedium:
      imagePath = @"http://path.to/medium_image.png";
    break;
    case MyImageSizeLarge:
      imagePath = @"http://path.to/large_image.png";
    break;
  }
  [imageView setImageWithURL:[NSURL URLWithString:imagePath]
            placeholderImage:[UIImage imageNamed:@"placeholder.png"]];
}
于 2013-08-23T11:55:31.237 回答