仅更改 UITableView 中一个部分的页脚大小

Posted

技术标签:

【中文标题】仅更改 UITableView 中一个部分的页脚大小【英文标题】:Change the footer size for only one section in the UITableView 【发布时间】:2014-04-12 12:37:12 【问题描述】:

我有一个分组的静态UITableView,其中 4 个部分。在所有 4 个部分中,我都有一个页眉,只有最后一个部分有一个页脚(代表应用程序的版本)。

因为我已经使用Interface BuilderStoryboard 建立了我的UITableViewController,所以我可以在检查器中设置页眉和页脚边距的大小,因此我将每个设置为10。

我面临的问题是,由于检查器中的页脚大小,代表页脚的 UILabel 被截断。

我正在使用自定义标签,因为我将页脚标题放在中间,使其变为白色并更改字体大小。

代码如下:

- (UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section

    if (section == 3)
    
        CGRect screenRect = [[UIScreen mainScreen] applicationFrame];

        UIView* headerView = [[UIView alloc] initWithFrame:CGRectMake(0, 80, screenRect.size.width, 44.0)];

        UILabel *label=[[UILabel alloc]initWithFrame:CGRectMake(0, 80, tableView.frame.size.width, 80.0)];
        label.textAlignment = NSTextAlignmentCenter;
        label.textColor = [UIColor whiteColor];
        NSString* currentAppVersion = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleShortVersionString"];

        label.text = [NSString stringWithFormat:@"Version: %@", currentAppVersion];
        label.font = [UIFont systemFontOfSize:14];
        [headerView addSubview:label];

        return label;
    
    else
    
        return nil;
    

问题是,如果我在检查器中增加页脚边距的大小,它会为每个部分增加它,然后使部分之间的间隙变得更大。

我只想增加最后一节的页脚,以免标签被遮挡。

我也尝试过更改上面代码中的 UIView 和 UILabel 值,但没有成功。

对此的任何指导将不胜感激。

【问题讨论】:

【参考方案1】:

您可以使用委托方法- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section

试试这样的:

- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section 
    CGFloat footerHeight = 0;
    if (section == 3) 
        footerHeight = 100;
    
    return footerHeight;

【讨论】:

非常感谢 Mats - 这非常成功。我非常感谢您对此的回复,并对迟到的回复感到抱歉!再次感谢!【参考方案2】:

SWIFT

上面接受的答案满足了我的需求,只是想将其转换为 Swift 以供将来使用。

override func tableView(_ tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat 

    var footerHeight: CGFloat = 0

    if section == 3 
       footerHeight = 100
    

    return footerHeight

【讨论】:

以上是关于仅更改 UITableView 中一个部分的页脚大小的主要内容,如果未能解决你的问题,请参考以下文章

UICollectionView 仅显示最后一部分的页脚

出现键盘时,UITableView 的部分页脚正在移动

UITableView 中的页脚错误

iOS中可导航的UITableView部分页脚?

如何在UITableView的页脚标题中使用换行符?

如何在 TableView 的一个部分手动设置页脚(iOS)?