UITableview 标题隐藏顶部单元格

UITableviewHeader hides top cells

我正在设置 UITableViewtableHeaderView,但它隐藏了 table 的顶部单元格。就我而言,我想展示 tableview header 我已经使用了所有可能的解决方案,但没有用。请帮忙。

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;

尝试在最后写下以下几行 [self.tableView setNeedsUpdateConstraints]; [self.tableView updateConstraintsIfNeeded];

如果你用storyboard设置headerview就变得简单了

不要在 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;
}

我正在解决这个问题,在我的例子中,真正的问题是情节提要中的约束。

You have to reset constraint from the storyboard.

或者,如果您以编程方式设置它,那么您需要在为小部件设置约束后调用 updateConstraintsIfNeeded 方法。