单元格底部可见时,UICollectionView触发单元格动画

时间:2018-05-16 06:11:44

标签: ios swift uicollectionview uicollectionviewcell

使用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()
            }
        }
    }
}

0 个答案:

没有答案