0

我正在尝试实现我自己的类似于 KKGridView 的 gridview。

我的 gridview 具有额外的复杂性,因为它需要支持多个部分,每个部分中包含不同数量的项目/单元格。(见下文)

在此处输入图像描述

它还需要能够处理将一个单元格从第 1 节移动到第 0 节以及将第 0 节移动到第 1 节。

我已经编写了 UIView 来显示网格,但它不支持将单元格从一个部分移动到另一个部分。问题是是否有人有支持此功能的 gridview 或者可以建议我最好的前进方式,因为这个 gridview 需要在 iOS 5 和 iOS 6 中得到支持

4

2 回答 2

6

我会尝试使用 , 的组合以及与UICollectionViewiOS5的兼容性。UICollectionViewFlowLayoutPSTCollectionView

  • 查看UICollectionViewDelegateFlowLayout文档,我想您会找到根据需要构建每部分自定义布局所需的一切。
  • PSTCollectionView是“iOS4.3+ 的 UICollectionView 的开源、100% API 兼容的替代品”。此外,您可以UICollectionView在 iOS6 上使用,并且只能PSTCollectionView在 iOS5 设备上使用。看看GitHub 项目页面

我在我正在开发的一个应用程序中使用了这种方法,而且实现起来非常简单。

编辑:你要采取的步骤大致如下:

  • 您需要下载包含PSTCollectionView在您的项目中。为此,请按照 GitHub 页面上的步骤操作。
  • 在您的.h文件中,导入PSTCollectionView.h并添加以下两个协议:<PSUICollectionViewDataSource, PSUICollectionViewDelegate>. 请注意,您将UICollectionView在 iOS6 和PSTCollectionViewiOS5 中使用 Apple。在这里,您还应该为您的集合视图添加一个属性:@property (nonatomic, strong) PSUICollectionView *collectionView;
  • viewDidLoad:方法中,你需要有这样的东西:

代码:

PSUICollectionViewFlowLayout *flowLayout = [[PSUICollectionViewFlowLayout alloc] init];
[flowLayout setScrollDirection:UICollectionViewScrollDirectionVertical];
[flowLayout setItemSize:CGSizeMake(91, 119)];
[flowLayout setMinimumLineSpacing:0];
self.collectionView.dataSource = self;
self.collectionView.delegate = self;
  • 您需要根据自己的喜好实现以下方法:

方法:

numberOfSectionsInCollectionView:
collectionView:numberOfItemsInSection:
collectionView:cellForItemAtIndexPath:
collectionView:layout:insetForSectionAtIndex:
collectionView:layout:minimumLineSpacingForSectionAtIndex:
collectionView:layout:minimumInteritemSpacingForSectionAtIndex:

重要提示:不要忘记在每次提到UICollectionView类前加上PS. 例如PSUICollectionViewPSUICollectionViewLayout

编辑 2:对于UICollectionView参考这个优秀教程的一般理解。

于 2012-12-21T11:00:23.777 回答
1

您可以使用自定义单元格来实现此功能。一个单元格有 10 个子视图,第二个单元格有 6 个子视图。它会为你工作。

您可以通过标签获取单元格中的视图,即 1-6 和 1-10

尝试这个

于 2012-12-21T10:52:15.387 回答