Swift - 在 collection 视图的其余部分之后发送 header 视图
Swift - send header view behind rest of collection view
好的,我有一个自定义贴纸应用程序,其中我试图实现这种效果,其余单元格后面的背景视图:
到目前为止,我已经创建了我的背景视图:
self.addSubview(bgView)
self.sendSubviewToBack(bgView)
并尝试了
func collectionView(_ collectionView: UICollectionView,
viewForSupplementaryElementOfKind kind: String,
at indexPath: IndexPath) -> UICollectionReusableView {
let headerView: HeaderCollectionReusableView = collectionView.dequeueReusableSupplementaryView(ofKind: kind, withReuseIdentifier: "headerCell", for: indexPath as IndexPath) as! HeaderCollectionReusableView
self.view.sendSubviewToBack(headerView)
但是背景视图仍然出现在单元格的顶部。我该怎么做?
如果您要继续使用背景的补充视图 - 实现所需行为的更可靠方法是将 zIndex
更改为 UICollectionViewLayoutAttributes
。这种方法需要 UICollectionViewLayout
子类化。
对于静态背景视图方法:如果背景视图和集合视图具有相同的超级视图,则背景视图位于集合视图下方,而集合视图具有透明背景 - 您的背景视图将始终位于下方。
有趣的效果!
你试过了吗:
- 添加虚拟 header 视图
- ...后面一个
Container View
- ... 持有
Collection view
(透明背景)
示例:
Storyboard
Result
Runtime
好的,我有一个自定义贴纸应用程序,其中我试图实现这种效果,其余单元格后面的背景视图:
到目前为止,我已经创建了我的背景视图:
self.addSubview(bgView)
self.sendSubviewToBack(bgView)
并尝试了
func collectionView(_ collectionView: UICollectionView,
viewForSupplementaryElementOfKind kind: String,
at indexPath: IndexPath) -> UICollectionReusableView {
let headerView: HeaderCollectionReusableView = collectionView.dequeueReusableSupplementaryView(ofKind: kind, withReuseIdentifier: "headerCell", for: indexPath as IndexPath) as! HeaderCollectionReusableView
self.view.sendSubviewToBack(headerView)
但是背景视图仍然出现在单元格的顶部。我该怎么做?
如果您要继续使用背景的补充视图 - 实现所需行为的更可靠方法是将 zIndex
更改为 UICollectionViewLayoutAttributes
。这种方法需要 UICollectionViewLayout
子类化。
对于静态背景视图方法:如果背景视图和集合视图具有相同的超级视图,则背景视图位于集合视图下方,而集合视图具有透明背景 - 您的背景视图将始终位于下方。
有趣的效果!
你试过了吗:
- 添加虚拟 header 视图
- ...后面一个
Container View
- ... 持有
Collection view
(透明背景)
示例:
Storyboard
Result
Runtime