我正在尝试实现类似于KKGridView的我自己的gridview。
我的gridview具有额外的复杂性,因为它需要支持多个部分,每个部分中包含不同数量的项目/单元格。 (见下文)
它还需要能够处理从第1部分到第0部分和第0部分到第1部分移动一个单元格。
我已经编写了UIView来显示网格,但它不支持将单元格从一个部分移动到另一个部分。问题是,任何人都有支持此功能的gridview,或者可以告诉我最好的前进方向,因为这个gridview需要在iOS 5& iOS 6
答案 0 :(得分:6)
我会尝试使用UICollectionView
,UICollectionViewFlowLayout
和PSTCollectionView
的组合来兼容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
前缀。例如PSUICollectionView
或PSUICollectionViewLayout
。
编辑2:有关UICollectionView
的一般理解,请参阅this excellent tutorial。
答案 1 :(得分:1)
您可以使用自定义单元格来实现此功能。一个单元有10个子视图,第二个有6个子视图。它会对你有用。
您可以通过标签(即1-6和1-10
)获取单元格中的视图试试这个