[英]Swift - Apply effect on the UICollectionView cell cut in half
使用此代碼,我已經對其進行了測試。
//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
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.