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

swift 学习笔记

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

滚动一次.png
滚动两次.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是导航栏下方第一个控件时, 出现如图所示问题

导航栏下放置滚动视图.png

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

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

automaticallyAdjustsScrollViewInsets = false
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容