带有章节的iOS GridView

时间:2012-12-21 10:45:40

标签: objective-c ios gridview

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

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

enter image description here

它还需要能够处理从第1部分到第0部分和第0部分到第1部分移动一个单元格。

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

2 个答案:

答案 0 :(得分:6)

我会尝试使用UICollectionViewUICollectionViewFlowLayoutPSTCollectionView的组合来兼容iOS5。

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

我在我正在开发的其中一个应用程序中使用此方法,并且实现起来非常简单。

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

  • 您需要在项目中包含PSTCollectionView。为此,请按照GitHub页面上的步骤进行操作。
  • .h文件中,导入PSTCollectionView.h并添加以下两个协议:<PSUICollectionViewDataSource, PSUICollectionViewDelegate>。请注意,使用此功能,您将在iOS6中使用Apple的UICollectionView,在iOS5中使用PSTCollectionView。您还应在此处为集合视图添加属性:@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的一般理解,请参阅this excellent tutorial

答案 1 :(得分:1)

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

您可以通过标签(即1-6和1-10

)获取单元格中的视图

试试这个