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)