大前端开发

UICollectionView的隐式动画消除

2020-07-09  本文已影响0人  link_hui

背景

页面使用了UICollectionView,有要求点击底部菜单选项的时候需要再次刷新页面内容。在刷新的时候会有一个隐式动画。cell 会有一个从左上角开始的扩大动画,在代码调用下拉刷新的时候尤其明显。

        collectionView.mj_header.beginRefreshing()

问题解决

参考【Objective-C】UICollectionView 取消隐式动画在cell动态布局内容修改的地方增加CATransaction的处理

    public func configWithViewModel(_ vm: ViewModel?) {

        CATransaction.begin()
        CATransaction.setDisableActions(true)
    
        ...... //动态修改cell内容的代码

        layoutIfNeeded()
        CATransaction.commit()
    }

发现扩大动效有好转,但是还是有cell内容高度方向的动画
有同学尝试在调用下拉刷新前设置了contentOffSet为0,代码如下

        collectionView.contentOffset = CGPoint(x: 0, y: 0)
        collectionView.mj_header.beginRefreshing()

问题得到解决。

上一篇下一篇

猜你喜欢

热点阅读