【问题标题】:Get size of image loading through URL通过 URL 获取图像加载的大小
【发布时间】:2014-06-08 06:54:00
【问题描述】:

在我的应用程序中,我在表格视图中显示提要。图片来自 URL。我想根据图像大小动态计算单元格高度。但是我在单元格加载后得到图像。

如何根据图片大小实现cell的动态高度?

我希望我的问题很清楚,我会在这里得到解决方案。

谢谢,

【问题讨论】:

  • 我认为您在表格视图中进行延迟加载,因此图像数据将在表格重新加载后出现,因此您无法在发送请求、获取数据并将数据应用到图像之前获取图像大小
  • 如果我不使用延迟加载,它不会平滑滚动tableview。
  • 最好的方法是在 UITableviewCell 中设置固定的 UIImage 视图大小,并将下载的图像调整为固定大小
  • 是的,我知道,所以我建议上面的评论
  • 或者您可以从调用您的图像 url 的 API(服务器)获取图像的大小。

标签: ios image uitableview uiimageview


【解决方案1】:

当你的图片被加载后,你可以计算你的行的所有高度,如果你的 heightForRowAtIndexPath 方法分别实现了,只需调用 [tableView reloadTable]。

【讨论】:

    【解决方案2】:

    如果服务由您自己处理,最简单的方法是在 api 本身中获取图像大小。因为如果不下载图像,您将无法获得其大小。

    另一种方法是将imageview 在表格行中保持恒定大小,并像大多数应用程序一样填充其中的图像。

    【讨论】:

      【解决方案3】:

      试试这个代码:

      但是你可以使用图片下载dispatch_async。

       NSData *imageData = [NSData dataWithContentsOfURL:[NSURL URLWithString:@"http://static.hugedomains.com/images/logo_huge_domains.gif"]];
          UIImage *image = [UIImage imageWithData:imageData];
          NSLog(@"image height: %f",image.size.height);
          NSLog(@"image width: %f",image.size.width);
      

      【讨论】:

      • 但是加载图片需要时间。我不能让用户等到图像加载完毕。
      • 使用相同的加载图像。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-24
      • 2012-05-19
      • 2013-02-28
      • 2011-09-25
      • 2023-04-05
      • 1970-01-01
      • 2020-03-14
      相关资源
      最近更新 更多