3

我希望所有单元格之间以及屏幕边框和最近的单元格之间具有相等的间距。基本上是这样的。等距和周围。UICollectionViewCells周围的等间距

enter image description here

我设法通过这样的设定值来测试这个在界面生成器。我设置了单元尺寸为110,敏间距为0,所有科插图分至10

enter image description here

它看起来完美的IB。

enter image description here

然而,当我运行它(在iPad上航2),它看起来像这样。

enter image description here

通知在小区之间的间距较大。我还试图通过从UICollectionViewDelegateFlowLayout实施以下方法完全从代码执行此操作。

func collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAtIndexPath indexPath: NSIndexPath) -> CGSize { 
    return CGSize(width: 110, height: 110) 
} 

func collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, insetForSectionAtIndex section: Int) -> UIEdgeInsets { 
    return UIEdgeInsets(top: 10, left: 10, bottom: 10, right: 10) 
} 

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

这产生了相同的结果。任何人都可以告诉我如何纠正这个问题吗?我宁愿通过代码来做到这一点。但我对任何事情都是开放的。

回答

1

不幸的是,这是默认情况下UICollectionViewFlowLayout的工作方式。这是因为您指定了精确的部分插页,但是最小的插页空间。 要做你正在问的问题,你主要有两种方法来做到这一点,取决于你想要的最终结果。两者都必须由代码手动完成。

•放大的细胞离开确切的空间(同一空间,更大的细胞)

•计算空间,改变插图与之匹配(相同的电池,更大的空间)

既可以做通过设置布局对象上的值(并使其无效)或通过代理返回值。