方法一:(会有副作用)
[_collectionView scrollToItemAtIndexPath:[NSIndexPath indexPathForItem:0 inSection:index] atScrollPosition:UICollectionViewScrollPositionTop animated:YES];
headerView不显示了,被上方搜索框挡住了。
somebody可能说让header悬浮可以解决,于是我们设置layout的sectionHeadersPinToVisibleBounds 属性
注意:sectionHeadersPinToVisibleBounds 是UICollectionViewFlowLayout的属性,不是collectionView的属性。
从图中可以看出,header遮挡住cell了,显然效果依然不好。所以方法一是有局限性的,如果只是一组,指定滚动某个cell可以满足需求。
方法二:
UICollectionViewLayoutAttributes *attributes = [_collectionView layoutAttributesForItemAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:index]]; CGRect rect = attributes.frame; [_collectionView setContentOffset:CGPointMake(_collectionView.frame.origin.x, rect.origin.y - “header的高度”) animated:YES];
效果图: