问题描述
我无法在单元格顶部的 UICollectionViewCompositionalLayout
中添加页脚。具体来说,我想在我的页脚中有一个交互式控件(在我的例子中是 UIPageControl)。这是一个示例布局,
func generateLayout() -> UICollectionViewCompositionalLayout {
let item = NSCollectionLayoutItem(layoutSize: .init(widthDimension: .fractionalWidth(1),heightDimension: .fractionalHeight(1)))
let groupSize = NSCollectionLayoutSize(
widthDimension: .fractionalWidth(1),heightDimension: .absolute(213)
)
let group = NSCollectionLayoutGroup.horizontal(layoutSize: groupSize,subitem: item,count: 1)
let section = NSCollectionLayoutSection(group: group)
section.boundarySupplementaryItems = [footer()]
return UICollectionViewCompositionalLayout(section: section)
}
页脚配置如下,
private func footer() -> NSCollectionLayoutBoundarySupplementaryItem {
let size = NSCollectionLayoutSize(widthDimension: .fractionalWidth(1),heightDimension: .absolute(20))
let item = NSCollectionLayoutBoundarySupplementaryItem(
layoutSize: size,elementKind: "footer-kind",alignment: .bottom,absoluteOffset: .init(x: 0,y: -30)
)
item.zIndex = 1000
return item
}
假设我的页脚中有一个按钮,我想点击它。我已更改页脚的 zIndex,使其高于我所在部分中的其他视图。
class FooterCell: UICollectionReusableView {
override func apply(_ layoutAttributes: UICollectionViewLayoutAttributes) {
super.apply(layoutAttributes)
layer.zPosition = CGFloat(layoutAttributes.zIndex)
}
}
以上代码片段的结果是按钮在单元格顶部可见,但不可点击。在视图调试器中进行一些检查后,很明显补充视图被添加到单元格之前的视图层次结构中,并且更改 zIndex 只会将层移到前面,而不是完整的视图。有没有办法改变在组合布局中添加视图的顺序?或者有没有其他方法可以将页脚视图置于单元格上方?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)