问题描述
背景:
我正在根据单元格内的动态文本使用 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
上拥有每个补充项目。见下图:
一个想法可能是将补充项放在它们的包含组中(listItemGroup
在我上面的摘录中),但是有没有办法将补充项放在 NSCollectionLayoutGroup
上?
如果没有,实现这一结果的最佳方法是什么?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)