UISearchDisplayController 奇怪的行为(视频)

Posted

技术标签:

【中文标题】UISearchDisplayController 奇怪的行为(视频)【英文标题】:UISearchDisplayController weird behavior (video) 【发布时间】:2013-11-21 00:30:38 【问题描述】:

当我将 IB(Xcode 5)中的 UISearchDisplayController 添加到 UINavigationController 中显示的 UIViewController 并按下搜索栏时,搜索栏会被黑色半透明视图覆盖。

这是视频:http://quick.as/ezrc7bq

我还没有接触任何代码,所以我不确定那里发生了什么。

【问题讨论】:

【参考方案1】:

这实际上是 ios UISearchBarDisplayController 中的一个错误(在 UINavigationController 中使用时)。默认行为是突出显示文本框,其余视图变暗,但此暗视图框架不考虑导航栏高度。

解决这个问题的最简单方法是实现搜索栏委托

- (void)searchDisplayControllerWillBeginSearch:(UISearchDisplayController *)controller self.navigationController.navigationBarHidden = YES; - (void) searchDisplayControllerWillEndSearch:(UISearchDisplayController *)controller self.navigationController.navigationBarHidden = 否;

其他选择包括修改搜索栏的框架

- (void)searchDisplayControllerWillBeginSearch:(UISearchDisplayController *)controller // 将搜索栏动画到顶部 ie. y=0 [UIView animateWithDuration:0.25f 动画:^ CGRect 框架 = 控制器.searchBar.frame; frame.origin.y = 0; 控制器.searchBar.frame = 框架; ];

【讨论】:

感谢您的视频!

以上是关于UISearchDisplayController 奇怪的行为(视频)的主要内容,如果未能解决你的问题,请参考以下文章

为啥 UISearchDisplayController 有时有效,有时无效?

iOS UISearchDisplayController学习笔记

在 UISearchDisplayController 上遇到僵尸问题

修复 UITableView 顶部的 UISearchdisplaycontroller 搜索栏

iphone隐藏UISearchDisplayController结果?

在 UISearchDisplayController 中设置 UISearchBar 的边框颜色