UITableview Header 隐藏顶部单元格

Posted

技术标签:

【中文标题】UITableview Header 隐藏顶部单元格【英文标题】:UITableviewHeader hides top cells 【发布时间】:2016-08-03 12:03:42 【问题描述】:

我正在设置UITableViewtableHeaderView,但它隐藏了表格的顶部单元格。就我而言,我想显示我已经使用了所有可能的解决方案但不起作用的 tableview 标题。请帮忙。

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;

【问题讨论】:

高度的日志值并检查它是否不为零 @DeepakKumar 不,它不为零。 在我的情况下,前三个单元格在 tableview 中不可见。 有人有办法解决这个问题吗? 一次尝试添加tableview header高度UITableViewDelegate方法 【参考方案1】:

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

如果您使用故事板设置标题视图,那么它将变得容易

【讨论】:

朋友你的想法与我的案例有点匹配,实际上我更新了我的标题 xib 约束并为我工作。【参考方案2】:

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

您必须从情节提要重置约束。

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

【讨论】:

【参考方案3】:

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

【讨论】:

然后检查你设置的高度是否正确。此外,请检查 headerview 中的约束,因为这样 UILayoutFittingCompressedSize 才会返回正确的动态高度。 看来我的约束不正确。它对我有用 UIView *headerView = [[UIView alloc]initWithFrame:self.headerView.frame]; [headerView addSubview:self.headerView]; self.reviewsTableView.tableHeaderView = headerView;

以上是关于UITableview Header 隐藏顶部单元格的主要内容,如果未能解决你的问题,请参考以下文章

如何隐藏 UITableView Header 然后让它重新出现?

如何检测 UITableView 滚动?

UITableView中的iOS折叠标题部分?

iOS UITableView 隐藏标题空间

使用固定的“标题”在 UITableView 上滚动单元格

UITableView 中的自定义单元格使图像在滚动时重叠