UICollectionViewController项插入动画Swift

时间:2017-12-20 12:16:04

标签: ios swift animation uicollectionview core-animation

尝试在集合视图上设置项目插入动画时,动画是从左到右或从右到左从屏幕外部滑入,因为我更改项目的帧原点x值。

enter image description here

我的问题是,当我调用UIView.animate时,即时调用完成回调而不显示动画,我试图在方法collectionView(_:cellForItemAt :)中添加项目类内的动画代码,甚至尝试过创建自定义viewflowlayout并覆盖layoutAttributesForItemAtIndexPath以添加转换,但没有任何工作,任何建议。

1 个答案:

答案 0 :(得分:1)

这有效:

func collectionView(_ collectionView: UICollectionView, willDisplay cell: UICollectionViewCell, forItemAt indexPath: IndexPath) {
    UIView.animate(withDuration: 1, animations: {
        var newFrame = cell.frame
        cell.frame = CGRect(x: newFrame.origin.x + 50, y: newFrame.origin.y, width: newFrame.width, height: newFrame.height)
    })
}

根据需要更换偏移量。

这也有效:

cell.frame.origin.x = cell.frame.origin.x + 50
在willDisplayCell内部