使用以下配置:
let layout = UICollectionViewFlowLayout()
layout.sectionHeadersPinToVisibleBounds = true
let collectionViewController = UICollectionViewController(view.bounds, collectionViewLayout: layout)
以下代码将滚动到给定的索引路径,但该项目将在其标题下并由其覆盖:
let indexPath = IndexPath(section: 0, row: 2)
collecitonView.scrollToItem(at: indexPath, at: .top, animated: true)
当sectionHeadersPinToVisibleBounds设置为true时,如何让集合视图滚动到indexPath上的项目,而不会让其项目部分标题覆盖该项目?
答案 0 :(得分:4)
这似乎是iOS框架的错误。我正在用这种方式。
guard let layout = collectionView.collectionViewLayout.layoutAttributesForItem(at: indexPath) else {
collectionView.scrollToItem(at: indexPath, at: .top, animated: true)
return
}
let offset = CGPoint(x: 0, y: layout.frame.minY - headerHeight)
collectionView.setContentOffset(offset, animated: true)