【发布时间】:2015-05-01 04:23:55
【问题描述】:
我正在尝试以编程方式创建一个 tableview,它在 tableHeaderView 中有一个搜索栏。出于某种原因,搜索栏出现在第一个单元格的顶部。
我正在使用 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);
}];
...
}
您可以在此处看到标题与单元格处于同一级别。
【问题讨论】:
-
不错。 +1 视觉效果
-
首先检查您的表格视图 Y 位置。可能是您的 TableView 标题位于导航栏的后面。检查标头是否实际创建?
-
我做了一个小视频,让你可以看到tableview不在导航栏后面。 youtube.com/…
标签: ios objective-c uitableview autolayout masonry-ios-osx