只在CollectionViewCell中滚动一个部分

时间:2014-07-02 12:00:31

标签: ios objective-c scroll uicollectionview uicollectionviewcell

我正在尝试collectionView并且可以通过加载数据进行配置,使用customCells就像UITableView一样,这是我处理得太多的一部分我知道的很多关于他们的功能。

我在UICollectionView找到新内容的一件事是flowLayout函数。我能够通过使用此函数为collectionView在CollectionView上的下面的方法上滚动多个项目

-(void)setupCollectionView
{
    UICollectionViewFlowLayout *flowLayout = [[UICollectionViewFlowLayout alloc] init];
    [flowLayout setScrollDirection:UICollectionViewScrollDirectionHorizontal];
    [flowLayout setMinimumInteritemSpacing:2.0f];
    [flowLayout setMinimumLineSpacing:2.0f];
    [self.collectionView setCollectionViewLayout:flowLayout];
}

但是这个滚动,使整个collectionView可滚动,我不想这样做。我的问题是只使一个collectionView部分可滚动。此功能在Scribd上实现,只需滚动一行(部分)并使其他行保持平静。这就是它在Scribd上的表现:

enter image description here

我想知道有没有办法通过FlowLayout函数通过CollectionView实现这一目的?如果没有,任何人都可以参考或给我一些与此问题相关的建议吗?

谢谢,

3r1d

1 个答案:

答案 0 :(得分:0)

每当您想要滚动到下一部分时,只需调用此方法

即可
-(void)scrollToNextSection{

    //Get all the visible cells
    //Get the index path of the first cell
    NSIndexPath *currentFirstVisibleItem = [[yourCollectionView indexPathsForVisibleItems] firstObject];

    //Scroll to the next section based on the visible cell current section
    [yourCollectionView scrollToItemAtIndexPath:[NSIndexPath indexPathForItem:0 inSection:currentFirstVisibleItem.section+1]
               atScrollPosition:UICollectionViewScrollPositionTop
                       animated:YES];

}