我有uicollectionview
包含2个部分,我想为每个部分添加不同大小的页脚。从IB看到我每个集合只能添加一个页脚和标题。
如果我能注册2个不同的页脚,是否有可能通过代码?或者可以在每个部分的运行时间中更改页脚的大小?
答案 0 :(得分:7)
是..有可能..你有两个选择
选项1:注册不同的页脚视图
使用不同的重用标识符通过代码注册页脚视图
registerClass:forSupplementaryViewOfKind:withReuseIdentifier:
然后
- (UICollectionReusableView *)collectionView:(UICollectionView *)collectionView viewForSupplementaryElementOfKind:(NSString *)kind atIndexPath:(NSIndexPath *)indexPath
{
NSString *identifier = nil;
if ([kind isEqualToString:UICollectionElementKindSectionFooter]) {
if (indexPath.section == 0) {
identifier = @"footerViewOne";
}
else{
identifier = @"footerViewTwo";
}
}
UICollectionReusableView *supplementaryView = [collectionView dequeueReusableSupplementaryViewOfKind:kind withReuseIdentifier:identifier forIndexPath:indexPath];
return supplementaryView;
}
选项2:只需更改页脚视图的大小
为此使用 UICollectionViewDelegateFlowLayout 方法
- (CGSize)collectionView:(PSUICollectionView *)collectionView layout:(PSUICollectionViewLayout*)collectionViewLayout referenceSizeForFooterInSection:(NSInteger)section
{
if (section==0) {
return CGSizeMake(500, 50);
}
else
{
return CGSizeMake(200, 50);
}
}