根据各种屏幕尺寸自动布局集合视图

Auto Layout Collection view according to various screen sizes

我在使用集合视图委托和数据源的普通视图控制器中使用集合视图。我正在使用 sizeForItemAtIndexPath 但它不会调整单元格的大小。

let screenSize: CGRect = UIScreen.main.bounds

func collectionView(_collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAtIndexPath indexPath: NSIndexPath) -> CGSize
{
    return CGSize(width: screenSize.width / 3, height: screenSize.width / 3)
}

使用 autoLayout 正确地为集合视图分配了约束。

它在 iPhone5 中的样子

外观应该如何

我知道使用了 estimatedItemSize 但我无法使用它,因为这不是 UICollectionViewController。谢谢你的建议?

确保:

  • 正在确认 UICollectionViewDelegateFlowLayout
  • collectionView 的宽度 = 屏幕的宽度。
  • 单元格的最小间距为零。您可以从 Interface Builder 更改它(Select collectionView -> 显示大小检查器 -> 将最小间距设置为 0),或者通过实现 minimumInteritemSpacingForSectionAt 返回零。

希望这能回答您的问题。