我的collectionView中有5个单元格,但我只显示2.5个单元格
例如,在我的collectionView中,我有这个:[] [] [
'[]'代表我的collectionView中的一个单元格。我们可以水平滚动以查看下一个单元格。
我想要的是对不可见的最后一个单元格应用一些不透明效果,以使界面平滑。
我该怎么做?
编辑:我想要的样品
但是当切成两半的细胞完全可见(不再切开)时,透明效果将消失,下一个切成两半的细胞将具有相同的效果
谢谢 最好的问候,
答案 0 :(得分:0)
使用此代码,我已经对其进行了测试。
//make this variable global
var previousIndexPath : IndexPath = IndexPath()
func scrollViewDidScroll(_ scrollView: UIScrollView) {
let indexPaths = fullyVisibleCells(collectionView)
if !previousIndexPath.isEmpty {
// Reset the Cell with transparent color
let cell = collectionView.cellForItem(at: previousIndexPath) as! collectionViewCell
cell.baseView.backgroundColor = .white //Here I used White color
}
if !indexPaths.isEmpty {
// Highlight the Cell with Desired color
let cell = collectionView.cellForItem(at: indexPaths.first!) as! collectionViewCell
cell.baseView.backgroundColor = .red // Here I have used Red color
previousIndexPath = indexPaths.first!
}
}
func fullyVisibleCells(_ inCollectionView: UICollectionView) -> [IndexPath] {
var returnCells = [IndexPath]()
var vCells = inCollectionView.visibleCells
vCells = vCells.filter({ cell -> Bool in
let cellRect = inCollectionView.convert(cell.frame, to: inCollectionView.superview)
return inCollectionView.frame.contains(cellRect)
})
vCells.forEach({
if let pth = inCollectionView.indexPath(for: $0) {
returnCells.append(pth)
}
})
return returnCells
}