iOS有没有办法在活动时将UISearchBar保留在TableviewHeader中

Posted

技术标签:

【中文标题】iOS有没有办法在活动时将UISearchBar保留在TableviewHeader中【英文标题】:iOS Is there a way to keep the UISearchBar in TableviewHeader when active 【发布时间】:2015-06-18 15:43:39 【问题描述】:

在我正在创建的当前应用程序中,我想知道是否有办法阻止 UISearchController 搜索栏在其处于活动状态时移动到 UInavigationbar 中。我已将它添加到 tableview tableHeadeView 但我想将它保留在那里而不是在活动时成为 UInvagiationbar。基本上,当搜索处于活动状态时,我想避免隐藏 UInavigationController 导航栏。我怎样才能做到这一点?

我已经尝试将此代码添加到用于更新文本的 searchController 委托方法中,但没有成功:

[self.navigationController setNavigationBarHidden:NO animated:YES];

当前代码:

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

friendsSearchController.searchBar.searchBarStyle = UISearchBarStyleMinimal;
friendsSearchController.searchBar.placeholder =  @"Find friends";
[friendsSearchController.searchBar sizeToFit];

self.tableView.tableHeaderView = friendsSearchController.searchBar;

【问题讨论】:

hidesNavigationBarDuringPresentationUISearchController 属性设置为NO 这行得通,但由于某种原因,searchController 可搜索从其原始位置下降了大约 50 像素,你知道这是为什么以及我该如何解决它吗? 尝试删除一次UISearchBarStyleMinimal,但我不太确定。 我最终在 searchBarShouldBeginEditing 委托方法中重置了框架 【参考方案1】:

UISearchControllerhidesNavigationBarDuringPresentation 属性决定导航栏在搜索时是否隐藏。设置为NO

friendsSearchController.hidesNavigationBarDuringPresentation = NO;

【讨论】:

以上是关于iOS有没有办法在活动时将UISearchBar保留在TableviewHeader中的主要内容,如果未能解决你的问题,请参考以下文章

在 iOS8 中使用 UISearchBar 启用取消按钮

字段为空时为 UISearchBar 启用“搜索”按钮? (IOS 7)

如何在滚动时将单元格的内容保留在屏幕上,直到单元格用完可用空间?

有没有办法在 iOS 中中断活动的 UITouch

当 UISearchBar 处于活动状态时,滚动到 UITableView 应用程序会崩溃

UISearchBar 搜索图标在 iOS7 中没有左对齐