- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想在单元格中显示图像,因为我需要先下载它,所以我想显示(为了简单起见)具有与图像相同宽度和高度的黑色 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/
我是一名优秀的程序员,十分优秀!