UISearchBar 在 iOS 7 中隐藏视图

Posted

技术标签:

【中文标题】UISearchBar 在 iOS 7 中隐藏视图【英文标题】:UISearchBar hides view in iOS 7 【发布时间】:2013-10-17 15:33:25 【问题描述】:

当我在作为 UITableView 的子项的 UISearchBar 上启动搜索时,除 UITableView 之外的任何其他视图都将被隐藏。这个问题只发生在 ios 7 上。而且我没有任何隐藏其他视图的特定代码。

【问题讨论】:

【参考方案1】:

要找到解决方案,我首先必须找出问题所在。

当文本输入到 UISearchBar 时,它会创建一个位于父视图顶部的 UITableView。 要显示隐藏的父视图,创建的 UITableView 必须偏移并调整大小以适应更小的区域。

(void)searchDisplayController:(UISearchDisplayController *)controller didShowSearchResultsTableView:(UITableView *)tableView 
// The tableView the search tableView replaces
CGRect f = self.mainTableView.frame;
CGRect s = self.searchDisplayController.searchBar.frame;
CGRect updatedFrame = CGRectMake(f.origin.x,
                             f.origin.y + s.size.height,
                             f.size.width,
                             f.size.height - s.size.height);
tableView.frame = updatedFrame;

【讨论】:

【参考方案2】:

尝试在弹出框UIViewController的viewDidLoad中添加这个:

if ([self respondsToSelector:@selector(edgesForExtendedLayout)])
    self.edgesForExtendedLayout = UIRectEdgeNone;

【讨论】:

我试了一下,但我仍然看到相同的结果。但是感谢您的回复,即使您是老鹰队的粉丝……让牛仔们去吧!

以上是关于UISearchBar 在 iOS 7 中隐藏视图的主要内容,如果未能解决你的问题,请参考以下文章

UITextfield 在 iOS 7 中不能作为 UISearchBar 的子视图?

UISearchBar 在 iOS 7.1 上添加到 UITableViewCell 时会更改其超级视图

iOS 7 UISearchBar 右间距

在 tableHeaderView iOS 7 中使用 UISearchBar 访问错误

UISearchbar去除背景色的方法,适合iOS5/6/7/8.0beta

如何通过代码隐藏 UISearchBar?