如何让集合视图中的图像视图根据屏幕大小自行调整大小?

Kin*_*Tim 1 ios uicollectionview swift

我有一个图像视图的集合视图,当在 iPhone 7 上的模拟器中运行时,布局是我想要的 - 每行显示 3 个图像,中间没有间距。但是,当我在手机(iPhone 6+)上运行它时,图像之间存在间距。

这些是设置布局的函数:

func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, insetForSectionAt section: Int) -> UIEdgeInsets {
    return UIEdgeInsetsMake(0,0,0,0)
}

func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumInteritemSpacingForSectionAt section: Int) -> CGFloat {
    return 0
}

func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumLineSpacingForSectionAt section: Int) -> CGFloat {
    return 0
}

func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {

    let imgWidth = view.bounds.width/3.0
    let imgHeight = imgWidth

    return CGSize(width: imgWidth, height: imgHeight)
}
Run Code Online (Sandbox Code Playgroud)

我想sizeForItem通过声明宽度是屏幕宽度除以三,高度等于它来重新缩放图像。但我想我对此感到困惑,也许它只是调整单元格的大小,而不是其中的图像视图。但是,我不确定在哪里可以设置图像视图大小以随屏幕大小动态缩放。

如何更改它以便集合视图中的图像单元格相应地调整自己的大小,并且无论屏幕大小如何,每行保持 3 个没有间距?

编辑:把后cell.postImage.contentMode = UIViewContentMode.scaleAspectFill进入cellForItem方法:

在此处输入图片说明

编辑 2:尝试 iOSFreak 的解决方案后,问题仍然存在:

在此处输入图片说明

ikb*_*bal 7

您将估计大小更改为“无”。

在此处输入图片说明