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