UICollection水平滚动,因此减少了单元格项之间的空间

我采用UICollectionView并设置水平滚动。 现在在这一个图像视图中,所有工作完美除了单元格间距。 在collectionView中,我为单元格0设置了最小间距(零)。 但是Spaces仍然存在。

我的输出是这样的…… 在此处输入图像描述

但我需要这种类型的输出..

在此处输入图像描述

还有一件事是,我提到了很多答案,但仍然不知道该怎么做。 我使用Xcode 7.0,所以我需要swift 2.0中的解决方案,如果可能的话,还请求在swift 3.0中给出答案。 请帮帮我。 先谢谢了。

尝试这个

别忘了设置collectionview flowlayout委托

 func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAtIndexPath indexPath: NSIndexPath) -> CGSize { return CGSize(width: collectionViewTable.bounds.size.width/2 - 20, height: 160) } func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, insetForSectionAt section: Int) -> UIEdgeInsets { return UIEdgeInsetsMake( 5, 14, 5, 14) } func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumLineSpacingForSectionAtIndex section: Int) -> CGFloat { return 20; } func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumInteritemSpacingForSectionAtIndex section: Int) -> CGFloat { return 20; } 

在此处输入图像描述

您可以从大小检查器设置单元格和行间距。

您也可以从UICollectionViewDelegateFlowLayout设置。

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

func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, insetForSectionAt section: Int) -> UIEdgeInsets

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

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

在代码中添加以下方法并进行操作直到您希望输出。

 func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize { return CGSize(width: CGFloat(collectionView.frame.size.width/ 2 - 5), height: CGFloat(135)) // 2 is indicates number of cell in row } 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 10.0 } func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumLineSpacingForSectionAt section: Int) -> CGFloat { return 10.0 } 

我的代码都很好。 但是我没有把我想要的东西拿出去,所以我尝试了新的东西 – 减去价值

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

所以只使用这个带负值的方法,我得到我想要的输出。 感谢所有试图为我解决这个问题的人……