如何让UISearchController启动隐藏?

时间:2015-06-05 12:12:56

标签: ios objective-c uisearchbar uisearchcontroller

我已使用以下方法将UISearchController添加到我的代码中:

self.searchController = [[UISearchController alloc] initWithSearchResultsController:nil];
self.searchController.searchResultsUpdater = self;
self.searchController.dimsBackgroundDuringPresentation = NO;
self.searchController.searchBar.scopeButtonTitles = @[];
self.searchController.searchBar.delegate = self;

self.tableView.tableHeaderView = self.searchController.searchBar;
[self.searchController.searchBar sizeToFit];
self.definesPresentationContext = YES;

这会创建我的搜索控制器并将其添加到我的tableView顶部。令人讨厌的是它开始可见:

enter image description here

我可以通过在导航栏下滑动来隐藏它,这表明代码的基本功能正在运行,但是我无法启动隐藏,所以我可以将其滑下来。

我已经尝试调整边缘插图,我已经尝试将导航栏设置为半透明,我已尝试在线查看搜索栏教程但似乎没有处理此问题。

非常欢迎任何帮助

3 个答案:

答案 0 :(得分:4)

您是否尝试过设置表格视图的内容偏移量?

[self.tableView setContentOffset:CGPointMake(0, self.searchController.searchBar.frame.size.height) animated:NO];

答案 1 :(得分:2)

从iOS 11.0开始,您可以使用

self.navigationItem.searchController = self.searchController;

除非您向下滑动以显示搜索栏,否则搜索栏将被隐藏。

答案 2 :(得分:1)

这是swift 4

tableView.setContentOffset(CGPoint(x: 0, y: searchController.searchBar.frame.size.height), animated: true)