UITableview Header 隐藏顶部单元格
Posted
技术标签:
【中文标题】UITableview Header 隐藏顶部单元格【英文标题】:UITableviewHeader hides top cells 【发布时间】:2016-08-03 12:03:42 【问题描述】:我正在设置UITableView
的tableHeaderView
,但它隐藏了表格的顶部单元格。就我而言,我想显示我已经使用了所有可能的解决方案但不起作用的 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 隐藏顶部单元格的主要内容,如果未能解决你的问题,请参考以下文章