从远程URL创建图像并将其添加到单元格

时间:2012-11-27 17:38:59

标签: objective-c rubymotion

我正在使用Rubymotion构建iOS应用。我正在创建一个自定义的tableview行 我想从远程API添加一个大图像(从JSON对象获取URL)。

我该怎么做?我无法在任何地方找到如何从远程URL创建图像,然后将其添加到单元格中。

感谢所有人的帮助!

更新

我现在正在使用此代码,但滚动表时性能非常差。

url = NSURL.URLWithString("http://www.gravatar.com/avatar/1d92e61d7066383b1e3c797ea635f86e?s=128&d=identicon&r=PG")
    data = NSData.dataWithContentsOfURL(url)
    remote = UIImage.imageWithData(data)
    image = UIImageView.alloc.initWithFrame([[50, 50],[150, 50]])
    image.contentMode = UIViewContentModeScaleAspectFit
    image.image = remote

更新2

我最终得到了性能良好的代码。现在我只想了解如何缓存图像。

Dispatch::Queue.concurrent.async do
      data = NSData.alloc.initWithContentsOfURL(NSURL.URLWithString(post.image_medium))
      if data
        image = UIImage.alloc.initWithData(data)
        Dispatch::Queue.main.sync do
          image_view = UIImageView.alloc.initWithFrame([[210, 10],[80, 80]])
          image_view.image = image
          view.addSubview(image_view)
        end
      end
    end

1 个答案:

答案 0 :(得分:1)

如果只是一个单元格中的一个图像使用

NSData *data = [NSData dataWithContentsOfURL:[NSURL URLWithString:@"http://www.example.com/exampleImage.png"]];
yourCell.image = [UIImage imageWithData:data];

如果你有很多当时或者不想阻止用户界面使用AsyncImageView