关于UICollectionView设置cell展示时遇到的问题

swift 学习笔记

问题1. 设置cell全屏展示,并且滚动方向为水平, 随着cell的滚动, 屏幕左边缘的空隙越来越大, 如下图:

关于UICollectionView设置cell展示时遇到的问题_第1张图片
滚动一次.png
关于UICollectionView设置cell展示时遇到的问题_第2张图片
滚动两次.png

问题分析: 由于设置cell水平滚动, 就下意识的以为只需要设置水平cell之间的距离就ok了, 于是就写了如下代码:

// 通过UICollectionViewFlowLayout直接设置
collectionViewFlowLayout.minimumInteritemSpacing = 0.0

// 通过代理方法
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumLineSpacingForSectionAt section: Int) -> CGFloat {
        return 0.0
    }

解决: 虽然设置了水平方向滚动, 而且cell占满屏幕, 但是iOS底层处理时依然将cell按照竖直排列处理(个人猜测), 所以只需要设置竖直空隙为0就可以了

// 通过UICollectionViewFlowLayout直接设置
collectionViewFlowLayout.minimumLineSpacing = 0

// 通过代理方法 
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumInteritemSpacingForSectionAt section: Int) -> CGFloat {
        return 0.0
    }

问题2: 当collectionView是导航栏下方第一个控件时, 出现如图所示问题

关于UICollectionView设置cell展示时遇到的问题_第3张图片
导航栏下放置滚动视图.png

问题分析: VC的automaticallyAdjustsScrollViewInsets属性在搞怪

解决方案: 只需要将VC的automaticallyAdjustsScrollViewInsets属性设置为false就可以了

automaticallyAdjustsScrollViewInsets = false

你可能感兴趣的:(关于UICollectionView设置cell展示时遇到的问题)