UICollectionView 单元格与 Header 重叠
Posted
技术标签:
【中文标题】UICollectionView 单元格与 Header 重叠【英文标题】:UICollectionView cell overlapping with Header 【发布时间】:2018-03-19 09:20:05 【问题描述】:func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize
let collectionViewWidth = collectionView.bounds.width
let keys = Array(indoordataDictionary.keys)
let keyString:String = keys[indexPath.section]
let objFacilityUserList:FacilityUserList = indoordataDictionary[keyString]! as! FacilityUserList
if objFacilityUserList.facilityUserList.count == 1
return CGSize(width: collectionViewWidth, height: 30)
return CGSize(width: collectionViewWidth/2, height: 70)
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumInteritemSpacingForSectionAt section: Int) -> CGFloat
return 0
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumLineSpacingForSectionAt section: Int) -> CGFloat
return 5
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, referenceSizeForHeaderInSection section: Int) -> CGSize
if indoorSegment.selectedSegmentIndex == 1
return CGSize(width:collectionView.frame.size.width, height:0.0)
else
return CGSize(width:collectionView.frame.size.width, height:40.0)
func collectionView(_ collectionView: UICollectionView, viewForSupplementaryElementOfKind kind: String, at indexPath: IndexPath) -> UICollectionReusableView
let headerView: PlaceCollectionReusableView = collectionView.dequeueReusableSupplementaryView(ofKind: kind, withReuseIdentifier: TagIDConstant.nibs.kPlaceCollectionReusableViewID, for: indexPath) as! PlaceCollectionReusableView
let keys = Array(indoordataDictionary.keys)
let keyString:String = keys[indexPath.section]
headerView.placeNameLabel.text = keyString
return headerView
【问题讨论】:
放重叠标题的屏幕截图 检查节标题的高度。检查它是否不返回 0,在这种情况下,它看起来像单元格重叠的标题。 尝试覆盖referenceSizeForHeaderInSection方法并返回你想要的高度 【参考方案1】:如果您使用 CollectionView
的自定义布局,那么以下链接是最好的类,它将解决此部分标题重叠问题。
https://gist.github.com/olxios/9e0ae85d49529b0d8b8a6fe6e7a00fab
希望它对那些使用 CollectionView
的自定义布局的人有所帮助。
【讨论】:
以上是关于UICollectionView 单元格与 Header 重叠的主要内容,如果未能解决你的问题,请参考以下文章
当集合视图大小发生变化时,我需要帮助为 UICollectionView 单元格大小设置动画