18

目前我正在尝试创建一个UICollectionView,它应该显示一个简单的excel-like-spreadsheet,其中rowscolumns。我相信这应该是一个简单的任务UICollectionViews。我真的想在UICollectionView中执行,而不是在任何grid framework中执行。UICollectionView:如何定义支持水平和垂直滚动的UICollectionViewLayout?

但目前我挂了一点点。我已经弄清楚了,我遗憾地不能使用UICollectionViewDelegateFlowLayout,因为这只支持scrolling或者horizontally或者vertically方向。但我需要两个方向的scrolling

因此我不得不使用UICollectionViewLayout,但为此我没有找到好的例子,如何使用它。有没有人举个例子,如何继承UICollectionViewLayout以支持rowscolumns

在此先感谢。

回答

10
+0

谢谢,这个例子对我很有帮助。如果任何人有一个水平和垂直滚动表的完整示例(在UICollectionView中实现),请随时在此处发布。 – AxM

+6

我已经完成了基本的网格视图,使用UICollectionView支持水平和垂直滚动。这可能对你有所帮助https://www.dropbox.com/s/qmmzuw35nvz8v36/MyCollectionView.zip – Jirune

+1

非常感谢这个@Jirune。它适用于我,但速度很慢。你知道我可以怎样加快速度吗?我想知道,矩形交叉码是我需要优化的部分。 –

7

UICollectionViewFlowLayout绝对不能 - “网格布局只能沿着一个轴滚动,不管是水平还是垂直。”

它是UICollectionViewLayout的一个子类。看起来像你可以创建你自己的UICollectionViewLayout的子类并向两个方向滚动。

你是什么意思的网页,你想要做的分页像scrollview?我想知道如何在UICollectionView中使用UICollectionViewFlowLayout进行垂直滚动,在UIScrollView内部进行水平滚动。

+2

是完美said..thanks .. –

+0

是的,我已经了解了,我必须使用UICollectionViewLayout而不是UICollectionViewFlowLayout ......这个我已经张贴在最初的问题。 所以你的评论绝对不会回答这个问题,对不起。 – AxM

4

我添加使用自定义布局,实现一个简单的水平&垂直滚动这里网格的例子https://github.com/neildavis/MyCollectionView

我的例子使用PSTCollectionView,因为我需要支持iOS 5 ,但它与API内置的UICollectionView兼容。 (实际上,它使用提供的兼容性类(PSUICollectionView等)来确保它在iOS 6上使用UICollectionView,并回退到在iOS 5上使用PSTCollectionView等。)只需删除这些上的'PS'前缀即可恢复为iOS 6 UIKit实现。

3

回答这个问题并不需要一个解剖样本3个项目

在你UICollectionViewLayout子类:

  1. 实施-(CGSize)[collectionViewContentSize],并在高度和宽度上比UICollectionView的大小返回一个大小。 (可通过以下方式访问:self.collectionView.frame.size
  2. 在内容大小而不是帧大小内计算您的UICollectionViewCell的布局。

注意:确保在UICollectionView中启用了滚动功能。 (它默认是开启的。)

2

我需要类似的东西。我创建了一个Custom CollectionViewLayout。

https://github.com/akashraje/BidirectionalCollectionViewLayout

+0

这对我来说非常有用,但是由于它不会被Xcode自动拾取,所以必须小心组件的拼写,并且一个小小的错字会让我在圈子里逗留很久。 – user1702985

+0

太棒了!有了这个源,你也可以实现对一行项目的选择。 –