2017-06-15 54 views
1

我尝试制作一个充满图片的tableview。这是我想和我的约束:UITableview充满了图像:图像之间的空间太多

  • 一个3:2的宽高比为在cell.height图片

图像中cell.width =图像用3:2乘法器

  • 图片的宽度应采取所有的屏幕宽度

图像中cell.centerX = Superview.centerX

0123在cell.width

图像= Superview.width

表View.Center X = Superview.Center X

表View.width = Superview.width

  • 画面之间的空间应为8

Cell.Bottom =图像在Cell.Bottom + 8

  • 其他方面的限制:

表view.top =顶部布局guide.bottom

表view.bottom =红色block.top

这就是我得到:

enter image description here

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

我的问题是每张照片上都有空白。我想它来自内容视图或单元格高度,与我的图片高度不匹配,但我无法做到正确。

通过一些更改,我在图片之间获得了正确的空间,但“屏幕上”的宽高比不再受到尊重(=图片宽度似乎超过了屏幕宽度)。如果我在Cell.height中添加cell.height = Image,会发生什么情况。我还得到了aspect = 3:2,height = Cell.height中的图像,Image in Cell.width = width和height = 400的冲突限制。

您是否看到有什么问题?

谢谢

亚历

回答

1

你设置你的tableView的rowHeight静态?我认为它应该是动态的,因为在不同的屏幕上,单元高度会根据高宽比而不同。

将此代码添加到您的viewDidLoad。这将有助于使你的tableView细胞高度动态:

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

而做出的tableView计算细胞高度,ImageView的顶部约束添加到上海华盈(小区)为0

其实,如果你想要的细胞是不同屏幕上的静态高度,只需删除您的aspectRatio约束,添加imageView heightConstraint等于单元格。它也会起作用。

+0

我不想要一个静态高度,我想要一个3:2的宽高比。我没有添加任何关于rowHeight的代码,所以我想这是“静态的”。在故事板中,我的表格视图的行高属性为400,而我想尊重宽高比并采用所有屏幕宽度,而不是指定高度。我已经在viewDidLoad中添加了代码并添加了约束图像在Cell.top = cell.top中,图像之间的空间是正确的,但宽高比不受尊重(高度非常小),并且我得到了冲突约束。 – Alex9494

+0

好的!现在问题在你的限制。你什么意思是说cell.top = cell.top。其实,你需要cell.top = cell.imageView.top。就像你的imageView应该坚持在最顶端的超级视图 – iamirzhan

+0

如果它不起作用。尝试删除单元格中的所有约束,并仅添加ImageView(3:2)和imageView边缘的超级视图(0到顶部,左和右,8到底部)的AspectRatio – iamirzhan