UICollectionViewFlowLayout左侧的间隙

时间:2016-02-17 14:24:16

标签: ios swift uicollectionview uicollectionviewlayout

我正在使用UICollectionViewFlowLayout来显示网格视图,这就是我看到它的方式。

The image for my layout Looks like this

问题在于左侧的差距。我对使用UICollectionViewFlowLayout有点新意,所以我无法弄清楚如何摆脱那边的差距。

请帮忙

3 个答案:

答案 0 :(得分:1)

要缩小左侧空间,您可以在sectionInset上设置UICollectionViewFlowLayout属性

flowLayout.sectionInsets = UIEdgeInsets(top: 50.0, left: 0.0, bottom: 50.0, right: 0.0)

或者您可以实现此方法:

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

如果委托对象没有实现   collectionView:layout:insetForSectionAtIndex:方法,流程布局   使用此属性中的值来设置每个部分的边距。

来源:Apple Documentation

答案 1 :(得分:1)

尝试使用:

 - (UIEdgeInsets)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout insetForSectionAtIndex:(NSInteger)section
{
  return UIEdgeInsetsMake(5, 5, 5, 5); //desired values
}

希望它有所帮助。

答案 2 :(得分:1)

我的第一个猜测是检查sectionInsets。您可以直接在流程布局上设置它们:

flowLayout.sectionInsets = UIEdgeInsets(...)

或通过~UICollectionViewDelegateFlowLayout`方法:

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

}

Flow Layout Delegate Reference

Flow Layout Reference