几个 UICollectionViews 像 iBooks 一样水平滚动
Posted
技术标签:
【中文标题】几个 UICollectionViews 像 iBooks 一样水平滚动【英文标题】:Several UICollectionViews Scroll Horizontally like iBooks 【发布时间】:2015-01-31 10:43:16 【问题描述】:我正在尝试创建一个包含多个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】:请记住,集合视图是滚动视图,因此您已经具备滚动的能力。您已经知道滚动视图只能将滚动限制到整页。因此,您可以将集合视图设置为使用页面,然后用户可以在集合内容的各个部分之间滚动。
您需要做的就是确保布局以正确的方向滚动(水平而不是垂直)并且每个页面都有适当的内容。您可能希望为此创建自己的布局,但只要您适当地设置项目大小,它就可以与流布局一起使用。
【讨论】:
以上是关于几个 UICollectionViews 像 iBooks 一样水平滚动的主要内容,如果未能解决你的问题,请参考以下文章
使 UIVIew 看起来像 IB 中的 UIView 的最佳方法?
单个 UIViewController 上的 2 个 UICollectionViews,具有不同数量的部分
Swift 中 UITableViewCell 中的同步滚动 UICollectionViews
从多个 UICollectionVIews 内的 UICollectionViewCell 推送新的 UICollectionViewController