gpt4 book ai didi

ios - 如何在 UITableViewCell 中调整 UIImageView 的大小?

转载 作者:行者123 更新时间:2023-11-28 09:25:43 25 4
gpt4 key购买 nike

我想在单元格中显示图像,因为我需要先下载它,所以我想显示(为了简单起见)具有与图像相同宽度和高度的黑色 View 。

因为我想将图像拉伸(stretch)到与单元格宽度相同的宽度,所以我只需要纵横比来设置高度,这在调用 cellForRowAt 时在我的代码中提供。

我决定在下载图像之前实现“黑色 View ”我只需要一个黑色背景的 UIImageView,并在调用 cellForRowAt 时调整它的大小。但这就是问题所在,因为使用类似问题的代码对我不起作用。

我在 cellForRowAt 方法中尝试过这样的事情:

var frame cell.imageView.frame
frame.size.height = CGFloat(aspectRatio) * frame.size.width
cell.imageView.frame = frame

编辑

因此,我想要类似 facebook 的东西,其中我们的照片宽度与单元格相同,高度根据纵横比而定。为简单起见,单元格只能有 UIImageView。

最佳答案

由于您使用的是自动布局,因此您应该在 Storyboard 中设置两件事:

  • 首先,设置 UIImageView 的宽度成为单元格的全宽
  • 其次,设置 UIImageView纵横比到 1:1 - 这表示高度始终与宽度相同。

如果您使用的是 UITableView用于单元格高度的自动尺寸,这应该是您所需要的;任何地方都没有代码,其他一切都正常。

如果您不使用自动单元格高度功能,则可以使用 self.tableView.rowHeight = self.tableView.bounds.size.width 设置一次单元格高度如果它们都相同,或者,如果单元格可以有不同的高度:

func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat { 

if (<indexPath IS IMAGE ROW>)
return tableView.bounds.size.width
return <default height>
}

我写的地方<indexPath IS IMAGE ROW> ,您应该将其替换为您需要检测此特定单元格是否为图像类型的任何条件。另外,正如 Rikh 指出的那样,我在哪里写了 <default height> ,您应该将其替换为不是图像类型的单元格的高度。当然,您的 table 可能有更复杂的设计;这只是涵盖了您询问的案例。

关于ios - 如何在 UITableViewCell 中调整 UIImageView 的大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41438310/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com