几个UICollectionViews像iBooks一样水平滚动

时间:2015-01-31 10:43:16

标签: ios objective-c uiscrollview uicollectionview

我正在尝试执行包含多个collectionViews的视图。向左或向右滑动会滚动到另一个collectionView

我已经添加scrollView作为启用分页的第一步。我还将内容大小设置为页数。

int nb_of_items = 10;

    // Scroll view
    for (int i=0; i< nb_of_items ; i++) {
        CGRect frame = CGRectMake(_scrollView.frame.size.width * i,
                                  0,
                                  _scrollView.frame.size.width,
                                  _scrollView.frame.size.height);

                _collectionView.frame = frame;
                [_scrollView addSubview:_collectionView];
    }

    _scrollView.contentSize = CGSizeMake(_scrollView.frame.size.width * nb_of_items, _scrollView.frame.size.height);

    _scrollView.delegate = self;

collectionView在我的故事板中定义,并且数据源和委托设置为self。 我只在第一页上收集了该集合。在其他页面上,我什么都没得到

我还尝试在scrollView减速

时刷新集合
- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView
{
    [self updateCollection];
}

- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate
{
    if (!decelerate) {
        [self updateCollection];
    }
}

-(void)updateCollection{

    NSLog(@"Updating Collection");
    [_collectionView reloadData];

}

我有什么想法可以解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

请记住,集合视图是滚动视图,因此您已经可以滚动。您已经知道滚动视图可以将滚动限制为仅限整页。因此,您可以将集合视图设置为使用页面,然后用户可以在集合内容的每个部分之间滚动。

您需要做的就是确保布局滚动方向正确(水平而不是垂直),并且每个页面都有适当的内容。您可能希望为此创建自己的布局,但只要您适当地设置项目大小,它就可以使用流布局。