大佬教程收集整理的这篇文章主要介绍了ios – 防止在UICollectionView中“包装”项目,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
认识到UICollectionView是UIScrollView的子类,我尝试在viewDidLoad中手动设置集合视图的内容大小属性:
self.collectionView.contentSize = CGSizeMake((columns * (cellWidth + itemSpacingX),(rows * (cellHeight + itemSpacingY));
但这没有效果.问题:
>在没有构建自定义布局的情况下,有没有一种简单的方法可以实现
>使用自定义布局并覆盖collectionViewContentSize方法是否成功获取集合视图以停止包装项目并在两个方向上滚动?
>如果我必须构建一个自定义布局 – 我将不得不投入一些时间来学习 – 我是否将uICollectionViewLayout子类化,或者将子类化UICollectionViewFlowLayout节省时间?
更新:
我尝试将uICollectionView嵌入为UIScrollView的子视图.集合视图本身表现正常 – 行没有包装在滚动视图的边缘,告诉我它正在填充我设置的UIScrollView内容大小.但是滚动视图不会在水平方向上平移,即它只是垂直滚动,集合视图无论如何都会自动进行.再次陷入困境.响应者链是否存在问题?
简单方法:使用UIScrollView和子类’UICollectionViewFlowLayout’.在UIScrollView中嵌入UICollectionView.在viewDiDLoad中设置滚动视图的contentSize属性以匹配集合视图将占用的完整大小(这将使默认流布局将项放在一个段中的一行中而不包装).子类UICollectionViewFlowLayout,并将该对象设置为集合视图的自定义布局.在自定义流布局中,覆盖collectionViewContentSize以返回集合视图矩阵的完整大小.使用此方法,您将使用流布局,但可以在两个方向上滚动以查看未包装的部分.缺点是你仍然有一个非常有限的流程布局.另外,将uICollectionView放在其自己的超类的实例中只是为了获得集合视图本身应该具有的功能似乎很笨拙.
更难的方式,但更多功能和优雅:子类UICollectionViewLayout.我使用this tutorial来学习如何实现完整的自定义布局.这里不需要UIScrollView.如果放弃流布局,子类UICollectionViewLayout,并将其设置为自定义布局,则可以构建矩阵并从集合视图本身获取正确的行为.这是更多的工作,因为你必须生成所有的布局属性,但你将被定位为使集合视图做你想做的任何事情.
在我看来,Apple应该在默认的流布局中添加一个属性来抑制包装.让设备显示具有完整行和列的2D矩阵并不是一种奇特的功能,看起来应该更容易.
以上是大佬教程为你收集整理的ios – 防止在UICollectionView中“包装”项目全部内容,希望文章能够帮你解决ios – 防止在UICollectionView中“包装”项目所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。