我使用自定义UICollectionView
布局来获得不同大小的单元格,而且我无法在其中添加部分。
在同一个UICollectionView
中使用多个UIViewController
是不是一个好主意?有什么建议吗?
答案 0 :(得分:7)
很简单
为每个UICollectionView代理
- (NSUInteger)maximumNumberOfColumnsForCollectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout
- (CGFloat)collectionView:(UICollectionView*)collectionView layout:(UICollectionViewLayout*)collectionViewLayout
heightForItemAtIndexPath:(NSIndexPath*)indexPath
- (UICollectionViewCell*)collectionView:(UICollectionView*)collectionView
cellForItemAtIndexPath:(NSIndexPath*)indexPath
- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath
- (NSInteger)collectionView:(UICollectionView*)collectionView numberOfItemsInSection:(NSInteger)section`
- (NSInteger)numberOfSectionsInCollectionView:(UICollectionView*)collectionView`
在里面写条件:
if (collectionView == myCollectionView1)
{
// do this
}
else if (collectionView == myCollectionView2)
{
// do this
}
例如在
中说- (NSInteger)collectionView:(UICollectionView*)collectionView numberOfItemsInSection:(NSInteger)section
{
if (collectionView == myCollectionView1)
{
return 12;
}
else if (collectionView == myCollectionView2)
{
return 7;
}
return 0;
}
答案 1 :(得分:1)
使用Tag Property区分一个View Controller中的多个UICollectionView或UITableView。
firstCollectionView.tag = 1;
secondCollectionView.tag = 2;
and so on ...
现在,在委托方法中使用if来检查UICollectionView
-(UICollectionViewCell *)collectionView:(UICollectionView *)collectionView
cellForItemAtIndexPath:(NSIndexPath *)indexPath
{
if(collectionView.tag == 1)
{
//cell for first UICollectionView or CollectionView with tag equal to 1
}
else if(collection.tag == 2)
{
//cell for second UICollectionView or CollectionView with tag equal to 2
}
}
在其他委托方法中使用相同的技术。