美文网首页
iOS UICollectionView 添加headerVie

iOS UICollectionView 添加headerVie

作者: 逍遥晨旭 | 来源:发表于2018-05-25 10:48 被阅读1261次

    方法一:(网上很多都是这样写,但是会有副作用)

    [_collectionView scrollToItemAtIndexPath:[NSIndexPath indexPathForItem:0 inSection:index] atScrollPosition:UICollectionViewScrollPositionTop animated:YES];
    

    点击索引后,效果图:

    不显示header的效果图

    headerView不显示了,被上方搜索框挡住了。

    somebody可能说让header悬浮可以解决,于是我们设置layout的sectionHeadersPinToVisibleBounds 属性

    layout.sectionHeadersPinToVisibleBounds = YES;
    

    注意:sectionHeadersPinToVisibleBounds 是UICollectionViewFlowLayout的属性,不是collectionView的属性。

    我们来看看效果图:

    header悬浮的效果图

    从图中可以看出,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];
    

    效果图:

    最终效果

    完美解决 。代码也不难理解,希望对你有所帮助。

    相关文章

      网友评论

          本文标题:iOS UICollectionView 添加headerVie

          本文链接:https://www.haomeiwen.com/subject/grsyjftx.html