【问题标题】:iPhone: Problem loading images from NSURLiPhone:从 NSURL 加载图像时出现问题
【发布时间】:2011-09-13 19:41:45
【问题描述】:

我有一组图片网址。我想将图像显示到 UIImageView 中。

现在我将 URL 转换为 NSData,然后将其转换为 UIImage,然后尝试将其加载到 UIImageView。

但是这需要很多时间。

有没有更好的方法可以更快更好地加载图像?

【问题讨论】:

    标签: iphone objective-c cocoa-touch ios4 uiimageview


    【解决方案1】:
    [UIImage imageWithData:[NSData dataWithContentsOfURL:]]
    

    【讨论】:

      【解决方案2】:

      在一个语句中使用所有内容。

      UIImage *image = [UIImage imageWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:MyURL]]];
      

      【讨论】:

      • 您确实意识到在 ONE 语句中执行此操作对 URL 连接或图像解码的速度没有影响!?!?
      • @Simon Lee :同意,但在这两种情况下,速度都取决于网络连接..
      • 这是一种更快的输入方式,但不是更快的处理方式。我认为 OP 是在谈论更快的处理速度而不是更快的打字速度。
      【解决方案3】:
      UIImage *image = [UIImage imageWithData:[NSData dataWithContentsOfURL:imageUrl]];
      

      【讨论】:

        【解决方案4】:

        试试这个:-

        image 是 UIImage,imageView 是 UIImageView

        NSData *receivedData = [NSData dataWithContentsOfURL:@"yoururl"];
        self.image=nil;
        UIImage *img = [[UIImage alloc] initWithData:receivedData ];
        self.image = img;
        [img release];
        [self.imageView setImage:self.image];
        

        【讨论】:

          【解决方案5】:

          尽管此处的所有答案都告诉您在一行代码中执行此操作,但遗憾的是,这对 URL 连接速度或数据/图像解码没有影响。如果您想要一种更快的方式来键入代码,那很好,但我会使用添加到 UIImageView 的类别......

          @interface UIImageView (URL)
          
          - (void)loadFromUrl:(NSString *)aUrl;
          
          @end
          
          @implementation UIImageView (URL)
          
          - (void)loadFromUrl:(NSString *)aUrl {
            NSURL *url = [NSURL urlWithString:aUrl];
            NSData *data = [NSData dataWithContentsOfURL:url]
            UIImage *image = [UIImage imageWithData:data];
          
            if(image != nil) {
              [self setImage:image];
            }
          }
          
          @end
          

          现在您可以包含标题并执行...

          [myImageView loadFromUrl:@"http://myurl.com/image.jpg"];
          

          更多类别(我会将这个添加到我的列表中!)查看here. 这些都是我有用的,你可能会发现它们也很有用! :)

          【讨论】:

          • 最好的一点是它可以跨类和跨项目保存和重复使用!
          • @Daniel Hanly, @Simon Lee : 对通过 URL 下载图片的速度有影响吗?
          • 不,正如我所说,遗憾的是,由于网络限制/带宽/图像大小等原因,您无能为力:( ....但我只是提出了一个更可重用的版本使打字更容易。
          • 这是一个比较myImageView.image = [UIImage imageWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:@"http://myurl.com/image.jpg"]]];[myImageView loadFromUrl:@"http://myurl.com/image.jpg"];的问题
          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-12-15
          • 1970-01-01
          • 2021-03-27
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多