2016-08-03 65 views
0

我正在設置UITableViewtableHeaderView,但它隱藏了表格的頂部單元格。在我的情況下,我想顯示tableview標題我已經使用了所有可能的解決方案,但沒有成功。請幫忙。UITableviewHeader隱藏頂部單元格

UIView *headerView = self.headerView; 

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

headerView.frame = ({ 
    CGRect headerFrame = headerView.frame; 
    headerFrame.size.height = height; 
    headerFrame; 
}); 



NSLog(@"Header Frame : %@",headerView); 
self.reviewsTableView.tableHeaderView = headerView; 

View debugger screenshot

+0

高度的日誌值並檢查它是否不爲零 –

+0

@DeepakKumar不,它不爲零。 –

+0

在我的情況下,前三個單元格在tableview中不可見。 –

回答

1

嘗試在年底 [self.tableView setNeedsUpdateConstraints]; [self.tableView updateConstraintsIfNeeded];

寫下面的行,如果你設置headerview用故事板,然後它會變得容易

+0

朋友你的想法與我的情況有點匹配,其實我更新了我的標題xib約束&爲我工作。 –

0

不要做它在viewDidLoad中。請在viewWillLayoutSubviews中進行。這對我有用。

- (void)viewWillLayoutSubviews { 
    [super viewWillLayoutSubviews]; 
    [_headerWrapper setNeedsLayout]; 
    [_headerWrapper layoutIfNeeded]; 
    CGFloat height = [_headerWrapper systemLayoutSizeFittingSize:UILayoutFittingCompressedSize].height; 
    CGRect headerFrame = _headerWrapper.frame; 
    headerFrame.size.height = height; 
    _headerWrapper.frame = headerFrame; 
    _tableView.tableHeaderView = _headerWrapper; 
} 
+0

我有測試,但它不起作用! :( –

+0

然後檢查你的設置是否正確的高度另外,在headerview中檢查你的約束,因爲那麼只有UILayoutFittingCompressedSize返回正確的動態高度 – Kunal

+0

看來我的約束是不正確的它對我工作UIView * headerView = [[UIView alloc] initWithFrame:self.headerView.frame]; [headerView addSubview:self.headerView]; self.reviewsTableView.tableHeaderView = headerView; –