美文网首页大前端开发
UICollectionView的隐式动画消除

UICollectionView的隐式动画消除

作者: link_hui | 来源:发表于2020-07-09 10:29 被阅读0次

    背景

    页面使用了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()
    

    问题得到解决。

    相关文章

      网友评论

        本文标题:UICollectionView的隐式动画消除

        本文链接:https://www.haomeiwen.com/subject/nhrjcktx.html