使用UICollectionView
,我试图在每个单元格中触发一个动画,在其中添加一些视图。问题是我只有在单元格的底部通过屏幕底部时才需要触发这些动画。
当然,iOS提供的方法可以告诉我何时要显示一个单元格,但我想在单元格在屏幕上完全可见时触发我的动画(否则用户将看不到动画)
这是我做的,实际上有效,但可能有更好的选择:
func scrollViewDidScroll(_ scrollView: UIScrollView) {
let cells = self.collectionView.visibleCells
for cell in cells {
if cell is PublicationSingleMediaCollectionViewCell {
guard let indexPath = collectionView.indexPath(for: cell) else {
return
}
guard let frame = self.collectionView.layoutAttributesForItem(at: indexPath)?.frame else {
return
}
if self.collectionView.bounds.contains(frame) {
let cell = cell as! PublicationSingleMediaCollectionViewCell
cell.animate()
}
}
}
}