1

从 viewDidLoad 布局中选择单元格后更改

在选择单元格之前

在选择单元格之前

选择单元格后

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
4

2 回答 2

1

您需要从单元格宽度中剪切插图和间距:

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)
}
于 2020-01-28T05:42:30.940 回答
0

当您设置时,scrollPosition: .centeredVertically您正在设置滚动后的项目将位于中心并垂直对齐,就像您在您的案例中看到的那样。尝试查看https://developer.apple.com/documentation/uikit/uicollectionview/1618057-selectitem以更改您想要的行为

于 2020-01-25T16:29:33.573 回答