滚动

时间:2017-07-17 15:21:17

标签: ios uicollectionview autolayout

我正在尝试构建一个集合视图(Xcode 8,Swift 3),每行显示两个单元格。集合视图中的每个单元格都有(从上到下):

  • 一个ImageView
  • 标题标签
  • 字幕标签

我在故事板中设置了如下单元格:

  • 细胞大小:250 x 258
  • 固定到容器单元格的ImageView(0顶部,0前导和0尾部)固定到标题标签(10个底部)
  • 标题标签固定在容器单元格(12个前导,12个尾随)和字幕标签(-0.5底部)
  • 固定在容器单元格上的字幕标签(12个前导,12个尾部,0个底部)
  • 分段10周围的内容
  • 行的最小间距10

然后在我的控制器的viewDidLoad中,我设置了以下内容:

let width = collectionView!.frame.width / 2
let layout = collectionViewLayout as! UICollectionViewFlowLayout
layout.itemSize = CGSize(width: width - 15, height: width - 4)

当我运行应用程序时,显然一切看起来都很好。但是,如果我开始上下滚动或更改为不同的选项卡并返回,则某些图像看起来比它们应该更高(单元格对于每个项目保持相同的大小,但图像更高并将标签推到下面)。

我假设这是自动布局的问题,但我不知道如何制作它,以便集合视图每行显示两个单元格,同时保持单元格内的图像具有相同的比例(图像为矩形250 x 197)。我无法为图像设置固定的宽度和高度值,因为我需要根据屏幕尺寸按比例缩放。

我在线寻找解决方案,但大多数集合视图教程使用方形图像,其中宽度和高度设置相同的值,因此他们不会考虑如何在矩形图像中保持比例。

1 个答案:

答案 0 :(得分:0)

这样问题可以标记为已回答!:)

"由于您不想静态设置宽度和高度,因此可以将其宽高比设置为1:27,以使图像保持与250x197相同的宽高比。

相关问题