UITableview充满了图像:图像之间的空间太大

时间:2017-06-15 11:56:10

标签: ios uitableview uistoryboard

我尝试制作一张充满图片的桌面视图。这就是我想要的和我的约束:

  • 图片的3:2宽高比

cell.width = image in cell.height中的图像,带有3:2的乘数

  • 图片的宽度应占据所有网页宽度

cell.centerX = Superview.centerX

中的图像

cell.width = Superview.width

中的图像

表格View.Center X = Superview.Center X

表View.width = Superview.width

  • 图片之间的空间应为8

Cell.Bottom = Cell.Bottom + 8中的图像

  • 其他限制:

table view.top = top layout guide.bottom

table view.bottom = red block.top

这就是我得到的:

enter image description here

我有三张图片,一张在屏幕上可见,另外两张在滚动时可见。 我的屏幕底部还有一个红色块。桌面视图位于红色区块后面。

我的问题是每张照片上都有一个空白区域。我猜它来自内容视图或单元格高度与我的图片高度不匹配,但我没有设法使其正确。

通过一些更改,我在图片之间获得了正确的空间,但屏幕上的宽高比为#34;不再受到尊重(=图片宽度似乎越过屏幕宽度)。如果我在Cell.height中添加cell.height = Image,会发生这种情况。我也得到了aspect = 3:2的冲突约束,高度= Cell.height中的Image,Cell.width = width中的Image,以及height = 400。

你看到了什么问题吗?

谢谢,

亚历

1 个答案:

答案 0 :(得分:1)

您是否静态设置了tableView rowHeight?我认为它应该是动态的,因为在不同的屏幕上,根据纵横比,单元高度会有所不同。

将此代码添加到viewDidLoad。这将有助于使tableView单元格高度动态化:

self.tableView.rowHeight = UITableViewAutomaticDymension
self.tableView.estimatedRowHeight = 60;

要使tableView计算单元格高度,请将imageView顶部约束添加到superView(单元格)为0。

实际上,如果您希望单元格在不同屏幕上是静态高度,只需删除aspectRatio约束,将imageView heightConstraint添加为等于单元格。它也会起作用。