0

我使用的方法如下

我刚刚尝试了下面的代码行,动态设置 UITableViewHeaderFooterView 高度大小。

self.tableView.estimatedSectionHeaderHeight = 100 self.tableView.sectionHeaderHeight = UITableViewAutomaticDimension

我有以下问题

在iOS9中,iOS10可以正常运行,并且可以正常显示。但是在iOS8中无法正确显示,并显示如下错误:

在此处输入图像描述

我的分析如下:

从错误提示可以看出问题是 NSLayoutConstraint: 0x7f8498d7b890 _UITableViewHeaderFooterContentView: 0x7f8498cb9200.height == 0

但我从未对 UITableViewHeaderFooterContentView 做出任何限制

我应该如何适配iOS8?

4

1 回答 1

1

你需要使用 UIView systemLayoutSizeFittingSize:

-(void)viewDidLayoutSubviews
    {
        [super viewDidLayoutSubviews];

        [ViewHeader setNeedsLayout];
        [ViewHeader layoutIfNeeded];
        CGFloat height = [ViewHeader systemLayoutSizeFittingSize:UILayoutFittingCompressedSize].height;

        CGRect headerFrame = ViewHeader.frame;
        headerFrame.size.height = height;
        ViewHeader.frame = headerFrame;
        [tbl setTableHeaderView:ViewHeader];
    }
于 2017-07-07T08:58:06.097 回答