1

我正在使用 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
4

1 回答 1

1

如果它只是一个单元格中的一张图像,请使用

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

如果你有很多或者不想阻止 UI 使用AsyncImageView

于 2012-11-27T17:49:15.420 回答