gpt4 book ai didi

uicollectionview - 如何以编程方式更改 UICollectionView 页脚 View 高度

转载 作者:行者123 更新时间:2023-12-03 15:08:18 25 4
gpt4 key购买 nike

我遇到了一个问题,在我的 UICollectionView 中,当返回的记录为 0 时,我需要显示一个页脚。下面的代码似乎运行良好,当没有记录时,显示页脚。但是,有一个问题,当有记录时,虽然footer被隐藏了,但是代码LINE 1似乎没有任何作用,也就是说footer的空格还在。知道如何摆脱它吗?即将页脚高度更改为 0 ,或者在返回记录时删除页脚。

- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout referenceSizeForFooterInSection:(NSInteger)section {
CGSize footerSize = CGSizeMake(320, self.view.frame.size.height);
return footerSize;
}

- (UICollectionReusableView *)collectionView:(UICollectionView *)collectionView viewForSupplementaryElementOfKind:(NSString *)kind atIndexPath:(NSIndexPath *)indexPath
{
UICollectionReusableView *reusableview = nil;

if (kind == UICollectionElementKindSectionFooter) {
reusableview = [collectionView dequeueReusableSupplementaryViewOfKind:UICollectionElementKindSectionFooter withReuseIdentifier:@"FooterView" forIndexPath:indexPath];
reusableview.hidden = YES;
if([topicArray count]>0){
reusableview.hidden = YES;
//reusableview.frame = CGRectMake(0, 0, 0, 0);
CGRect newFrame = reusableview.frame;
newFrame.size.height =0;
reusableview.frame = newFrame; // <-------- LINE 1.
}else{
reusableview.hidden = NO;
reusableview.frame = CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height);
UIImageView *oopsImgView =[[UIImageView alloc] initWithFrame:CGRectMake(60, 130,200,154)];
UILabel *label=[[UILabel alloc] ....;
label.adjustsFontSizeToFitWidth = YES;
label.textAlignment = NSTextAlignmentCenter;
label.lineBreakMode = NSLineBreakByWordWrapping;
label.numberOfLines = 0;
label.font = [UIFont boldSystemFontOfSize:16.0f];
label.minimumScaleFactor = 10.0f/15.0f;
[reusableview addSubview:label];
}

}

return reusableview;
}

最佳答案

顺便说一句,你是什么self.view.frame.size.height ?我希望这在任何时候都不会为零。因为 self.view是 View Controller 内部层次结构中的顶 View 。

您无需更改 viewForSupplementaryElementOfKind: 中的页脚大小方法。您只需要找到什么时候不应该在特定部分显示页脚。

试试这个,让我知道这是否适合你。

- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout referenceSizeForFooterInSection:(NSInteger)section
{
BOOL sectionToHide = [self checkIfThisSectionToHide:section]; // find if the section to hide here..
if (sectionToHide) {
return CGSizeZero;
}else {
return CGSizeMake(320, self.view.frame.size.height);
}
}

关于uicollectionview - 如何以编程方式更改 UICollectionView 页脚 View 高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27865301/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com