UICollectionViewCell 在 UICollectionViewReusableView 宽度之后开始
Posted
技术标签:
【中文标题】UICollectionViewCell 在 UICollectionViewReusableView 宽度之后开始【英文标题】:UICollectionViewCell starts after UICollectionViewReusableView width 【发布时间】:2019-03-21 06:03:00 【问题描述】:我正在 UITableViewCell 中处理 UICollectionView。使用“UICollectionReusableView”作为标题视图。 header view 的宽度是 100。在我介绍 header view 之前,CollectionViewCell 从 CollectionView 的开头开始,正如预期的那样。在我放置标题视图后,CollectionViewCell 从标题视图宽度的末尾开始。我认为某处位置设置不正确。
CollectionView 的滚动方向是水平的。我使用 UICollectionViewFlowLayout 来呈现 CollectionViewCell。
let layout = UICollectionViewFlowLayout()
layout.sectionInset = UIEdgeInsets(top: 5.0, left: 5.0, bottom: 5.0, right: 5.0)
layout.minimumInteritemSpacing = 8.0
layout.minimumLineSpacing = 5.0
layout.scrollDirection = .horizontal
layout.sectionHeadersPinToVisibleBounds = true
collectionView.collectionViewLayout = layout
我已经使用“referenceSizeForHeaderInSection”委托设置了标题视图的大小。 任何我可能错的提示。
【问题讨论】:
如果我正确理解您的问题,它将“从标题视图宽度的末尾开始”,因为滚动方向是水平的.. @AjinkyaSharma,是的,你是对的。如果我注释掉滚动方向,则 CollectionViewCell 从中心开始,滚动方向垂直。 【参考方案1】:而不是使用 UICollectionViewFlowLayout,你应该继承它并覆盖该方法 layoutAttributesForSupplementaryViewOfKind: 并相应地给你的框架
【讨论】:
我希望你的意思是覆盖“layoutAttributesForElements”。因为对我来说标题很好,只有集合视图位置是问题。我做了 UICollectionViewFlowLayout 的子类,并实现了“layoutAttributesForElements”,然后一切听起来都很好。我对你的答案投了赞成票。感谢您的提示。以上是关于UICollectionViewCell 在 UICollectionViewReusableView 宽度之后开始的主要内容,如果未能解决你的问题,请参考以下文章
XCTest 与自定义 UICollectionViewCell
滚动时大型 UICollectionViewCell 停止显示