我想在我的UICollectionVIewCell
添加另一个自定义UICollectionView
。所以我现在在同一个collectionView中有两个自定义单元格。我放入的所有delegate
方法都是针对第一个collectionViewCell
(collectionVIewCellA)。
我已将collectionViewCellB添加到我的故事板中,但不确定如何告诉viewController
这个新的自定义单元格并对其进行配置。有没有人这样做过?
非常感谢你的帮助。
答案 0 :(得分:0)
您可以通过
执行此操作- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView
cellForItemAtIndexPath:(NSIndexPath *)indexPath {
if (condition for cellA) {
//dequeue cell with cell A identifier
//configure cell
} else {
//dequeue cell with cell B identifier
//configure cell
}
}
假设集合视图单元格A和B在故事板中配置了不同的重用标识符。
您可以在sizeForItemAtIndexPath
委托方法中使用相同的逻辑来更新高度取决于单元格
- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath
答案 1 :(得分:0)
你在collectionView cellForItemAtIndexPath
这样的委托方法中设置条件。
- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath{
// your cell condition here
if (self.isMainMenu) {
MainCell *cell=[collectionView dequeueReusableCellWithReuseIdentifier:@"MainCell" forIndexPath:indexPath];
if(cell!=nil){// cell nil condition
}
// cell coding here
return cell;
}
else{
// second custom cell code here
ItemCell *cell=[collectionView dequeueReusableCellWithReuseIdentifier:@"ItemCell" forIndexPath:indexPath];
// cell coding here
return cell;
}
}
增加细胞高度
- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout
sizeForItemAtIndexPath:(NSIndexPath *)indexPath
{
if(first cell condition)
{
return CGSizeMake((collectionView.frame.size.width/4)-5, (collectionView.frame.size.width/4)-5);// your required height
}
else{
return CGSizeMake((collectionView.frame.size.width/4)-5, (collectionView.frame.size.width/4)-5);// your required height
}
}