我有一个具有两个不同布局的UICollectionView。
小布局-每行3个单元格 位布局-每行1个单元格
当我将布局从小到大更改时,会出现动画-单元会变大到所需的大小。 但是回来似乎有点奇怪。所有消失,单元格开始出现,并从角落获取所有屏幕。
布局更改代码
if currentZoomMode == .x3 {
self.collectionView?.insertItems(at: [IndexPath.init(item: pageDataModel.pageDataArray.count, section: 0)])
UIView.animate(withDuration: 0.3, animations: {
self.view.layoutIfNeeded()
}) { (_) in }
} else {
if self.collectionView?.editingModeEnabled == true {
self.collectionView?.editingModeEnabled = false
} else {
self.collectionView?.deleteItems(at: [IndexPath.init(item: self.pageDataModel.pageDataArray.count, section: 0)])
UIView.animate(withDuration: 0.3, animations: {
self.view.layoutIfNeeded()
}) { (_) in }
}
}
let layout : UICollectionViewFlowLayout = self.currentZoomMode == .x3 ? self.smallFlowLayout : self.bigFlowlayout
self.collectionView?.collectionViewLayout.invalidateLayout()
self.collectionView?.setCollectionViewLayout(layout, animated: true)
大型和大型布局几乎相同,只是项目大小不同。