带有章节的iOS GridView

Jus*_*ell 0 gridview objective-c ios

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

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

在此输入图像描述

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

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

Mar*_*ski 6

我会尝试使用的组合UICollectionView,以UICollectionViewFlowLayout沿PSTCollectionView对iOS5的兼容性.

  • 看一下这些UICollectionViewDelegateFlowLayout文档,我想你会找到你需要的所有内容来构建每个部分的自定义布局.
  • PSTCollectionView是一个"开源,100%API兼容替代UICollectionView for iOS4.3 +".此外,您可以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;
Run Code Online (Sandbox Code Playgroud)
  • 您需要根据自己的喜好实施以下方法:

方法:

numberOfSectionsInCollectionView:
collectionView:numberOfItemsInSection:
collectionView:cellForItemAtIndexPath:
collectionView:layout:insetForSectionAtIndex:
collectionView:layout:minimumLineSpacingForSectionAtIndex:
collectionView:layout:minimumInteritemSpacingForSectionAtIndex:
Run Code Online (Sandbox Code Playgroud)

重要提示:不要忘记为每个提及的UICollectionView课程添加前缀PS.例如PSUICollectionViewPSUICollectionViewLayout.

编辑2:有关一般理解,UICollectionView请参阅此优秀教程.