Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/111.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隐藏/防止单元格滚动到粘性标题后面_Ios_Swift_Uicollectionview_Uicollectionviewlayout - Fatal编程技术网

Ios UICollectionView隐藏/防止单元格滚动到粘性标题后面

Ios UICollectionView隐藏/防止单元格滚动到粘性标题后面,ios,swift,uicollectionview,uicollectionviewlayout,Ios,Swift,Uicollectionview,Uicollectionviewlayout,我有一个带有粘性标题的集合视图 flowLayout.sectionHeadersPinToVisibleBounds = true 我的问题是标题的上半部分是半透明的,当我向上滚动单元格时,我可以看到单元格在标题后面滚动 我想将单元格视图的一部分隐藏在标题后面。在我所附的图片中,当绿色在红色后面时,我不想看到绿色。其余的行为我想保持原样 我之所以需要这个是因为我有一个墙纸图像在后面,我需要显示 我认为这里的问题可能类似,但没有人回应,也不太清楚是否是同一个问题。 我创建了一个与您类似的非

我有一个带有粘性标题的集合视图

 flowLayout.sectionHeadersPinToVisibleBounds = true
我的问题是标题的上半部分是半透明的,当我向上滚动单元格时,我可以看到单元格在标题后面滚动

我想将单元格视图的一部分隐藏在标题后面。在我所附的图片中,当绿色在红色后面时,我不想看到绿色。其余的行为我想保持原样

我之所以需要这个是因为我有一个墙纸图像在后面,我需要显示

我认为这里的问题可能类似,但没有人回应,也不太清楚是否是同一个问题。

我创建了一个与您类似的非常简单的设置,它运行良好

class ViewController: UIViewController, UICollectionViewDataSource
{
    @IBOutlet weak var collectionView: UICollectionView!

    override func viewDidLoad()
    {
        super.viewDidLoad()
        self.collectionView.alwaysBounceVertical = true

        if let flowLayout = collectionView.collectionViewLayout as? UICollectionViewFlowLayout
        {
            flowLayout.headerReferenceSize = CGSize(width: 400, height: 100)
            flowLayout.sectionHeadersPinToVisibleBounds = true
        }
    }

    func numberOfSections(in collectionView: UICollectionView) -> Int
    {
        return 10
    }

    func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int
    {
        return 1
    }

    func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell
    {
        return collectionView.dequeueReusableCell(withReuseIdentifier: "cell", for: indexPath)
    }

    func collectionView(_ collectionView: UICollectionView, viewForSupplementaryElementOfKind kind: String, at indexPath: IndexPath) -> UICollectionReusableView
    {
        if kind == UICollectionElementKindSectionHeader
        {
            return collectionView.dequeueReusableSupplementaryView(ofKind: UICollectionElementKindSectionHeader, withReuseIdentifier: "rview", for: indexPath)
        }
        return UICollectionReusableView()
    }
}
这对我很有用:

let layout = collectionView.collectionViewLayout as! UICollectionViewFlowLayout
    layout.sectionHeadersPinToVisibleBounds = true
    layout.sectionInsetReference = .fromSafeArea
    view.backgroundColor = .white
    collectionView.anchor(top: view.safeAreaLayoutGuide.topAnchor, leading: 
    view.leadingAnchor, bottom: view.bottomAnchor, trailing: view.trailingAnchor)

您需要为位于标题视图下的所有单元格应用掩码。在Scroll上使用ViewDidScroll


教程:

显示您使用过的代码。该代码是标准代码,但sectionHeadersPinToVisibleBounds除外。我把它贴在任何地方了你找到解决办法了吗?什么好用?我的集合视图工作,我的问题是如何拥有一个透明的标题,而不看到它后面的单元格。你是如何使标题透明的?我的意思是这样做的代码哦..真的很抱歉..我没有完全理解你的问题。这个链接可能会对你有所帮助。谢谢,但一点也不相关。我认为这种功能是不可能的。我也在寻找解决方案,但没有找到。
let layout = collectionView.collectionViewLayout as! UICollectionViewFlowLayout
    layout.sectionHeadersPinToVisibleBounds = true
    layout.sectionInsetReference = .fromSafeArea
    view.backgroundColor = .white
    collectionView.anchor(top: view.safeAreaLayoutGuide.topAnchor, leading: 
    view.leadingAnchor, bottom: view.bottomAnchor, trailing: view.trailingAnchor)