ios – UICollectionView滚动到任何页脚或标题视图

前端之家收集整理的这篇文章主要介绍了ios – UICollectionView滚动到任何页脚或标题视图前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想滚动到集合视图的页脚或标题视图,但是,scrollToItemAtIndexPath的标准方法仅滚动到单元格
- (void)scrollToBottom {
        NSInteger section = [self numberOfSectionsInCollectionView:self.collectionView] - 1;
        NSInteger item = [self collectionView:self.collectionView numberOfItemsInSection:section] - 1;
        if ((section > 0) && (item > 0)) {
            NSIndexPath * lastIndexPath = [NSIndexPath indexPathForItem:item inSection:section];
            [self.collectionView scrollToItemAtIndexPath:lastIndexPath atScrollPosition:UICollectionViewScrollPositionBottom animated:NO];
        }
}

如何滚动到任何页脚,标题视图,类似于滚动到单元格?

解决方法

我知道这是一个老问题,但我最近遇到了同样的问题.我找到的最好的解决方案是来自Gene De Lisa的 http://www.rockhoppertech.com/blog/scroll-to-uicollectionview-header/,因为你似乎在Obj-C工作,这里是我使用的Swift代码的端口:
-(void) scrollToSectionHeader:(int)section {    
    NSIndexPath *indexPath = [NSIndexPath indexPathForRow:0 inSection:section];
    UICollectionViewLayoutAttributes *attribs = [self.collectionView layoutAttributesForSupplementaryElementOfKind:UICollectionElementKindSectionHeader atIndexPath:indexPath];
    CGPoint topOfHeader = CGPointMake(0,attribs.frame.origin.y - self.collectionView.contentInset.top);
    [self.collectionView setContentOffset:topOfHeader animated:YES];
}

上面的代码将正确滚动到给定部分的标题(我需要的全部).修改它以滚动到页脚是很简单的:

-(void) scrollToSectionFooter:(int)section {    
    NSIndexPath *indexPath = [NSIndexPath indexPathForRow:0 inSection:section];
    UICollectionViewLayoutAttributes *attribs = [self.collectionView layoutAttributesForSupplementaryElementOfKind:UICollectionElementKindSectionFooter atIndexPath:indexPath];
    CGPoint topOfFooter = CGPointMake(0,attribs.frame.origin.y - self.collectionView.contentInset.top);
    [self.collectionView setContentOffset:topOfFooter animated:YES];
}

猜你在找的iOS相关文章