selectItem 时的集合视图布局错误(Swift 5) [英] Collection View layout bug when selectItem (Swift 5)
本文介绍了selectItem 时的集合视图布局错误(Swift 5)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
从 viewDidLoad 中选择单元格后布局发生变化
After selecting cell from viewDidLoad Layout is change
选择单元格之前
选择单元格后
let indexPath = IndexPath(row: SelectedFolderIndex, section: 0)
collectionView.selectItem(at: indexPath, animated: false, scrollPosition: .centeredVertically)
布局
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
return CGSize(width: collectionView.frame.width/2.2, height: 55)
}
ViewDidLoad
let layout: UICollectionViewFlowLayout = UICollectionViewFlowLayout()
layout.sectionInset = UIEdgeInsets(top: 7, left: 12, bottom: 12, right: 12)
layout.minimumInteritemSpacing = 5
layout.minimumLineSpacing = 11
collectionView!.collectionViewLayout = layout
collectionView.delegate = self
collectionView.dataSource = self
collectionView.allowsMultipleSelection = false
推荐答案
你需要从单元格宽度中剪掉插入和间距:
You need to cut insets and spacing from cell width:
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
let width = (collectionView.frame.width/2.2) - 2*12 - 11
return CGSize(width: width, height: 55)
}
这篇关于selectItem 时的集合视图布局错误(Swift 5)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文