2013-02-11 79 views
3

我有一个集合视图,其内容水平滚动,并且需要在设备的整个宽度内可见。收集视图有clipsToBounds设置为NO,它的框架是600宽,pagingEnabled设置为YESUICollectionView,分页和clipsToBounds

我在寻找的效果是,内容似乎会在另一个视图下滑动,但是当单元格在集合视图的框架外滚动时,它将被删除,以便它可以重复使用。

任何人都知道我可能如何得到这个工作,或达到类似的效果?

+0

u能PLZ提供更多的细节。即g代码片段任何或线框或您迄今为止尝试高压。 – Swapnil 2013-02-12 12:26:11

+1

http://stackoverflow.com/a/16070570 – 2013-04-18 14:42:28

+0

我尝试了这样的事情,但我认为我没能禁用本机识别器,感谢您的链接。 – tapi 2013-04-18 14:54:14

回答

4

下面是我发现得到这种效果的最简单的方法。它涉及你的收藏视图和一个额外的秘密滚动视图。

设置您收集意见

  • 设置您的收藏视图及其所有数据源的方法。
  • 构图集合视图;它应该跨越你想要看到的全部宽度。
  • 将集合视图的contentInset

    _collectionView.contentInset = UIEdgeInsetsMake(0, (self.view.frame.size.width-pageSize)/2, 0, (self.view.frame.size.width-pageSize)/2); 
    

这有助于抵消正常细胞。

设置你的秘密滚动型

  • 创建滚动视图,将其放置你喜欢的地方。如果您愿意,您可以将其设置为hidden
  • 将滚动视图边界的大小设置为所需的页面大小。
  • 将自己设置为滚动视图的代表。
  • 将其contentSize设置为您的收藏视图的预期内容大小。

移动你的手势识别

  • 秘密滚动型的手势识别添加到集合视图,并禁用集合视图的手势识别:

    [_collectionView addGestureRecognizer:_secretScrollView.panGestureRecognizer]; 
    _collectionView.panGestureRecognizer.enabled = NO; 
    

代表

- (void) scrollViewDidScroll:(UIScrollView *)scrollView { 
    CGPoint contentOffset = scrollView.contentOffset; 
    contentOffset.x = contentOffset.x - _collectionView.contentInset.left; 
    _collectionView.contentOffset = contentOffset; 
} 

随着scrollview的移动,获取其偏移量并将其设置为集合视图的偏移量。

我的博客上讲述这个在这里,所以检查此链接更新:http://khanlou.com/2013/04/paging-a-overflowing-collection-view/