gpt4 book ai didi

ios - 第一个单元格顶部的 tableHeaderView

转载 作者:技术小花猫 更新时间:2023-10-29 11:00:10 25 4
gpt4 key购买 nike

我正在尝试以编程方式创建一个在 tableHeaderView 中具有搜索栏的 tableview。由于某种原因,搜索栏出现在第一个单元格的顶部。

我正在使用 Masonry 来构建约束。

谁能指出我做错了什么。

- (void)setupViews {

...
self.tableView = [[UITableView alloc] initWithFrame:CGRectZero];
[self.view addSubview:self.tableView];

self.searchBar = [[UISearchBar alloc] initWithFrame:CGRectZero];
self.tableView.tableHeaderView = self.searchBar;
...
}

- (void)updateViewConstraints {

[self.searchBar mas_updateConstraints:^(MASConstraintMaker *make) {
make.width.equalTo(self.view);
make.height.equalTo(@(44));
}];

[self.tableView mas_updateConstraints:^(MASConstraintMaker *make) {
make.self.top.equalTo(self.view);
make.self.bottom.equalTo(self.toolbar.mas_top);
make.width.equalTo(self.view);
}];
...
}

Problem

您可以在此处看到标题与单元格处于同一级别。 View hierarchy

最佳答案

感谢您的帮助,我在 GitHub 上找到了一个要点,其中谈到使用 AutoLayout 更改 tableViewHeader 的大小:

https://gist.github.com/andreacremaschi/833829c80367d751cb83

- (void) sizeHeaderToFit {
UIView *headerView = self.tableHeaderView;

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

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

self.tableHeaderView = headerView;
}

如果我在 updateViewConstraints 期间调用此方法,它就会起作用。

但是,我并不完全理解。

关于ios - 第一个单元格顶部的 tableHeaderView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28782319/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com