2017-07-29 31 views
1

我拿UICollectionView并设置水平滚动。现在在这个图像视图中,除单元格间距之外,所有工作都很完美。在collectionView中,我设置单元格0(零)的最小间距。但空间仍然存在。UICollection水平滚动,所以减少单元格项之间的空间

我的输出就是这样.. enter image description here

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

enter image description here

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

+0

你的代码试试吗?检查此:https://stackoverflow.com/questions/28325277/how-to-set-cell-spacing-and-uicollectionview-uicollectionviewflowlayout-size-r –

+0

func collectionView(collectionView:UICollectionView,布局collectionViewLayout:UICollectionViewLayout,minimumInteritemSpacingForSectionAtIndex部分: INT) - > CGFloat的{ 返回0 } FUNC的CollectionView(的CollectionView:UICollectionView,布局collectionViewLayout:UICollectionViewLayout,sizeForItemAtIndexPath indexPath:NSIndexPath) - > CGSize { 返回CGSize(宽度:155,高度:155) } 我也把这种方法的UICollectionViewDelegateFlowLayout,但仍然不工作.. – NiravS

+0

你确定deleagte被称为? –

回答

3

试试这个

不要忘记设置的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; 
    } 
+0

修改插入并检查它是否会工作 –

+0

根据需要输出不正确的输出。 – NiravS

+0

我提到了很多代码,但都是关于垂直滚动。我滚动水平 – NiravS

0

添加下面的方法和操作,直到你的愿望输出。

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 
    } 
0

我的代码都很好。但我不门口出来把我想要什么,所以我尝试给新的东西 -

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

所以只能用这一个方法与负值负值,我得到我想要的输出。 感谢所有谁试图解决这个bug我...

1

enter image description here

您可以设置细胞和尺寸检查间隔线。

您也可以从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

相关问题