Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios UICollectionView Swift中特定节的粘性标题_Ios_Swift_Uicollectionview_Uicollectionviewlayout_Contentoffset - Fatal编程技术网

Ios UICollectionView Swift中特定节的粘性标题

Ios UICollectionView Swift中特定节的粘性标题,ios,swift,uicollectionview,uicollectionviewlayout,contentoffset,Ios,Swift,Uicollectionview,Uicollectionviewlayout,Contentoffset,我试图为一个特定的部分创建一个粘性的补充标题,当特定的部分涉及到导航时,它始终位于顶部,不会与其他部分标题重叠。到目前为止,我找到的解决方案一直有效到900collectionView.contentOffset.y。我遵循这个代码 我必须设置sectionHeadersPinToVisibleBounds=false,因为我只想在顶部粘贴一个标题,同时根据位置上下滚动。其他节标题不应推出粘性标题 当我在Swift中这样做时,最好在Swift中有一个示例。这导致在for循环中迭代时标题的布局属性

我试图为一个特定的部分创建一个粘性的补充标题,当特定的部分涉及到导航时,它始终位于顶部,不会与其他部分标题重叠。到目前为止,我找到的解决方案一直有效到900
collectionView.contentOffset.y
。我遵循这个代码

我必须设置
sectionHeadersPinToVisibleBounds=false
,因为我只想在顶部粘贴一个标题,同时根据位置上下滚动。其他节标题不应推出粘性标题


当我在Swift中这样做时,最好在Swift中有一个示例。

这导致在for循环中迭代时标题的布局属性不包括在属性数组中,从而导致布局位置不再调整为屏幕顶部的“粘性”位置

在for循环的正前方添加这些行,以将粘性标题的布局属性添加到属性数组(如果不存在):

重写函数布局属性ForElements(在rect:CGRect中)->[UICollectionViewLayoutAttribute]?{
变量LayoutAttribute=[UICollectionViewLayoutAttribute]()
guard let cellLayoutAttributesInRect=super.layoutAttributesForElements(in:rect)else{return nil}
//将粘性标题的布局属性添加到属性数组(如果不存在)
如果让stickyHeaderIndexPath=stickyHeaderIndexPath,
让stickyAttribute=layoutAttributesForSupplementaryView(of kind:UICollectionView.elementKindSectionHeader,at:stickyHeaderIndexPath),
!LayoutAttribute.contains(stickyAttribute){
layoutAttributes.append(stickyAttribute)
}
返回布局属性
}