当前位置: 首页 > 知识库问答 >
问题:

如何找到图像的高度和宽度,并用纵横比拟合tableviewcell?

华永新
2023-03-14

我在TableViewCell中显示了拉伸图像。我需要找到图像的高度和宽度从图像URL。我需要找到纵横比,并根据Swift4中动态单元格的高度在单元格上拟合图像。

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCell(withIdentifier: CellIdentifier.ManCell) as! ManCell
    let image = self.posts[indexPath.row]["thumbnail_images"]["medium_large"]["url"].stringValue

    let cleanString = removeHtmlTagsFromResponse(index: indexPath.row)
    cell.nutriTitle.text = self.posts[indexPath.row]["title"].stringValue
    print("labels: \(self.posts[indexPath.row]["title"].stringValue)")

    cell.nutriDetail.text = cleanString
    let lCount = calculateHeightOfLable(cellLabel: cell.nutriDetail)
    print("string: \(cleanString)")
    print("HeightCount: \(lCount)")
    cell.nutriImage.sd_setImage(with: URL(string: image), placeholderImage: UIImage(named: "no_image"))
    let heightContentSize = cell.bounds.height
    print("HeightContentSize= ",heightContentSize)
    return cell
}

共有1个答案

罗兴运
2023-03-14

看起来您正在使用SDWebImage从URL加载图像。在文档中,您将发现UImage上有另一个方法,名为:sd_setimagewithurl:placeholderimage:options:completed:,它采用一个具有4个参数的完成处理程序:image:UIImage、error:NSError、iscache:Bool和url:url。使用第一个参数获取图像的大小。请注意,这是异步的;在下载图像之前,您不会获得大小(假设您还没有将其放在缓存中),因此,如果您正在动态调整单元格的大小,则单元格可能会调整大小。

 类似资料:
  • 我在响应式站点上设置了flexSlider。我正在创建的滑块可以拍摄横向和纵向图像。我设置了,以便调整高度以适应图像。 在最大的媒体查询中,flexslider容器的宽度为750px。这对于横向图像很好,但纵向图像太大了。肖像图像的宽度设置为与容器相同的大小-750px宽,因此高度至少是容器宽度的两倍,因此如果不滚动,则无法查看整个图像。 在css中,我尝试设置最大高度:750px,这解决了高度问

  • 我有一个javafx GridPane,当我调整阶段大小时,它会调整自己的大小以适应阶段的大小。我希望gridpane的高度与gridpane的宽度相匹配,并因此将大小调整为尽可能大的大小,同时保持这种约束。 我不得不在GridPane的父级中添加更多的元素。我发现添加的元素完全没有正常的行为,并且相互重叠。 当然,当我移除重写方法时,它们不再重叠,但当我调整舞台大小时,网格窗格并没有保持一个完美

  • 使用CSS flex box模型,如何强制图像保持其纵横比? JS小提琴:http://jsfiddle.net/xLc2Le0k/2/ 请注意,为了填充容器的宽度,图像会拉伸或收缩。这很好,但是我们也能让它拉伸或收缩高度来保持图像比例吗? HTML CSS

  • 我有一个。的数据是从服务器请求的。 以下是中的项布局: 我从服务器请求数据,获取图像url并将图像加载到 适配器中有方法的代码 图像大小为。我在我的Nexus4上运行我的应用程序。图像填充宽度,但高度不缩放。不显示整个图像。 我如何解决这个问题?

  • 我试着用图表。js创建缩略图,链接到包含完整图表的页面。 链接页面上的完整图表看起来不错,但对于缩略图,我就是无法正确调整大小。画布覆盖了正确的区域,但图形没有垂直填充。 我尝试过调整画布的最小高度,但这会导致条带模糊。有什么方法可以调整横条的高度以占据整个画布吗?

  • 我在较小的设备宽度上遇到问题,其中div变得更加方形,景观也更少。div的背景图像设置为,因此它只占用div顶部60%的高度和100%的宽度。 如何将背景图像设置为覆盖div高度的100%,但保持其纵横比,以便部分背景图像被切断。 如何对齐背景图像,使其右侧位于div的右侧(因此背景图像的左侧将被div的左侧截断)。