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()
问题得到解决。