2016-08-03 63 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; –