Ios 使用UICollectionViewCompositionLayout时如何根据屏幕宽度更改项目大小

Ios 使用UICollectionViewCompositionLayout时如何根据屏幕宽度更改项目大小,ios,uicollectionview,uicollectionviewcompositionallayout,Ios,Uicollectionview,Uicollectionviewcompositionallayout,在我使用UICollectionViewCompositionalLayout的收藏视图中,当视图宽度较小时,我希望项目大小为85x85,否则为100x100。但这是在创建布局时指定的,所以当屏幕宽度改变时,如何更改布局大小,例如旋转iPhone或更改iPad上的拆分视图配置 collectionView.collectionViewLayout = { let size = CGFloat(view.bounds.width < 375 ? 85 : 100) let i

在我使用
UICollectionViewCompositionalLayout
的收藏视图中,当视图宽度较小时,我希望项目大小为85x85,否则为100x100。但这是在创建布局时指定的,所以当屏幕宽度改变时,如何更改布局大小,例如旋转iPhone或更改iPad上的拆分视图配置

collectionView.collectionViewLayout = {
    let size = CGFloat(view.bounds.width < 375 ? 85 : 100)
    let itemSize = NSCollectionLayoutSize(widthDimension: .absolute(size), heightDimension: .absolute(size))
    let item = NSCollectionLayoutItem(layoutSize: itemSize)

    let groupSize = NSCollectionLayoutSize(widthDimension: .fractionalWidth(1), heightDimension: .absolute(size))
    let group = NSCollectionLayoutGroup.horizontal(layoutSize: groupSize, subitems: [item])
            
    let section = NSCollectionLayoutSection(group: group)
    return UICollectionViewCompositionalLayout(section: section)
}()
collectionView.collectionViewLayout={
let size=CGFloat(view.bounds.width<375?85:100)
让itemSize=NSCollectionLayoutSize(宽度维度:。绝对(大小),高度维度:。绝对(大小))
let item=NSCollectionLayoutItem(layoutSize:itemSize)
设groupSize=NSCollectionLayoutSize(宽度维度:。分数宽度(1),高度维度:。绝对(大小))
let group=NSCollectionLayoutGroup.horizontal(layoutSize:groupSize,子项:[项])
let section=NSCollectionLayoutSection(组:组)
返回UICollectionViewCompositionLayout(截面:截面)
}()

不要调用
UICollectionViewCompositionalLayout(section:)
,这是一种设置节的静态方式,请使用另一个初始值设定项,在其中传递节提供程序函数。您的函数现在接收环境作为参数,包括集合视图大小,因此现在您可以根据环境实时做出决定。如果环境发生变化,您会再次被调用,因此,您可以处理应用程序大小的变化(如在进入分屏模式的iPad中)。

而不是调用
UICollectionViewCompositionalLayout(section:)
,这是一种设置节的静态方式,请使用另一个初始值设定项,传递节提供程序函数的位置。您的函数现在接收环境作为参数,包括集合视图大小,因此现在您可以根据环境实时做出决定。如果环境发生变化,您会再次接到电话,因此,您可以处理应用程序大小的变化(就像在进入分屏模式的iPad中一样)。

是的,我会。:)让我先编辑完我的答案前两部分说明了如何使用环境大小来指定布局细节。是的,我知道。:)让我先编辑完我的答案前两部分说明了如何使用环境大小来指定布局细节。