当indexHeadersPinToVisibleBounds时,indexPath上的scrollToItem隐藏了标题下的单元格

时间:2018-04-03 20:42:37

标签: swift uicollectionview uicollectionviewcell uicollectionviewlayout

使用以下配置:

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上的项目,而不会让其项目部分标题覆盖该项目?

1 个答案:

答案 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)