将 NSCollectionLayoutSupplementaryItem 放在包含组的底部 背景:问题:

问题描述

背景:

我正在根据单元格内的动态文本使用 UICollectionViewCompositionalLayout 和估计高度创建单元格。每个单元格的底部尾角都有一个补充项(一个按钮)。创建布局的一小段代码摘录:

// List item
let estimatedListItemHeight = CGFloat(240)

let listItemSize = NSCollectionLayoutSize(
    widthDimension: .fractionalWidth(1/3),heightDimension: .estimated(estimatedListItemHeight)
)

let listItem = NSCollectionLayoutItem(layoutSize: listItemSize,supplementaryItems: [makeOverflowButton()])

// List item group
let listItemGroupSize = NSCollectionLayoutSize(
    widthDimension: .fractionalWidth(1),heightDimension: .estimated(estimatedListItemHeight)
)

let listItemGroup = NSCollectionLayoutGroup.horizontal(
    layoutSize: NSCollectionLayoutSize(
        widthDimension: .fractionalWidth(1),heightDimension: .estimated(estimatedListItemHeight)
    ),subitem: listItem,count: 3
)

然后我使用单独的方法来创建补充项:

func makeOverflowButton() -> NSCollectionLayoutSupplementaryItem {

    let overflowSize = NSCollectionLayoutSize(
        widthDimension: .fractionalWidth(1),heightDimension: .estimated(25)
    )

    return NSCollectionLayoutSupplementaryItem(
        layoutSize: overflowSize,elementKind: OverflowSupplementaryButton.supplementaryViewKind,containerAnchor: NSCollectionLayoutAnchor(edges: [.bottom,.trailing])
    )
}

问题:

由于单元格的高度是动态的,因此补充项彼此不在同一 y 位置。然而,我确实希望它们是动态的,并且在同一个 y 上拥有每个补充项目。见下图:

requested result

一个想法可能是将补充项放在它们的包含组中(listItemGroup 在我上面的摘录中),但是有没有办法将补充项放在 NSCollectionLayoutGroup 上?

如果没有,实现这一结果的最佳方法是什么?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)