UITableViewHeader的UISearchBar子视图?

我想添加一个UISearchBar到已经有一个标题视图的UITableView。 当我尝试将搜索栏添加到现有的页眉视图时,它会一直运行,直到我点击它,此时我得到The view hierarchy is not prepared for the constraint ,这似乎是因为搜索栏不是直接子视图所以当UISearchController试图更新它不能的约束时,tableview。

解决这个问题的唯一方法就是将表格视图标题放在搜索栏中,然后一切正常,但是当然我失去了已经在标题视图中的其他视图。


为了解决这个问题,我把我的搜索栏放在容器UIView 。 将约束应用于此容器视图,并为容器内的搜索栏使用自动确定大小的掩码。

// Configure header view
UIView *headerView = ...
...

// Create container view for search bar
UIView *searchBarContainer = [UIView new];
searchBarContainer.translatesAutoresizingMaskIntoConstraints = NO;
[searchBarContainer addSubview:self.searchBar];
[headerView addSubview:searchBarContainer];
self.searchBar.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;

// Apply constraints involving searchBarContainer
[headerView addConstraint: ...];
...

// Then add header to table view
self.tableView.tableHeaderView = headerView;
链接地址: http://www.djcxy.com/p/55973.html

上一篇: UISearchBar subview of UITableViewHeader?

下一篇: How to make UIView hides in UITableView as UISearchBar