0

我使用的方法如下iOS8如何動態修復UITableViewHeaderFooterView的高度尺寸?

我剛嘗試下面的代碼行,動態地設置UITableViewHeaderFooterView高度尺寸。

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

我具有以下問題

在iOS9,iOS10可以正常運行,並且可以正確地顯示。但是,不能在iOS8上正確顯示,並顯示以下錯誤:

enter image description here

我的分析如下:

從錯誤提示,我可以看到這個問題是NSLayoutConstraint :0x7f8498d7b890 _UITableViewHeaderFooterContentView:0x7f8498cb9200.height == 0

但我從來沒有任何約束,以UITableViewHeaderFooterContentView

我應該如何適應iOS8?

+0

呼叫,當你回到你的了'表視圖單元格中爲行at'方法'updateConstraintsIfNeeded'方法。 'cell.updateConstraintsIfNeeded() 回報cell' ,則不需要此步爲iOS 9+ –

+0

此方法不起作用 – ChildrenGreens

+0

爲了使UITableViewAutomaticDimension工作,你必須將所有左,右,底部和頂部約束相對於單元格容器視圖。檢查你是否添加了所有四個約束... –

回答

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]; 
    }