UISearchBar与状态栏animation转换错误ios7

我有一个UISearchBaranimation的问题。

当状态栏打开时,animation是有问题的。 否则它是好的。 我以编程方式创build了tableview和searchbar。 uisearchbar在tableview的headerview中。 保持这种状态很重要。 当你使用故事板时,我知道它的工作正常。

我创build了一个非常基本的示例项目,因为我认为这是向您显示问题的最简单的方法。 我花了几个小时find解决scheme,但我无法弄清楚。 任何帮助将不胜感激。

这里是一个示例项目的链接: SearchBarProject !

我find

self.navigationController.navigationBar.translucent = YES; 

使我的animation更less车

我认为这是IOS 7的错误。 有一个苹果提供的uitableviewsearch示例应用程序。 编辑search栏时也有同样的问题。 使用IOS 6没有任何问题

只需在UISearchBar中添加一个子图层,然后改变视图的背景色就可以使animation几乎完美

 - (void) searchDisplayControllerWillEndSearch:(UISearchDisplayController *)controller { self.view.backgroundColor = RGB(199,199,204); self.fixSearchAnimation = [[UIView alloc] initWithFrame:CGRectMake(0, -20,320, 40)]; self.fixSearchAnimation.backgroundColor = RGB(199,199,204); [self.searchController.searchBar addSubview:self.fixSearchAnimation]; [self.searchController.searchBar sendSubviewToBack:self.fixSearchAnimation]; } - (void) searchDisplayControllerDidEndSearch:(UISearchDisplayController *)controller { self.view.backgroundColor = [UIColor whiteColor]; [self.fixSearchAnimation removeFromSuperview]; } 

在慢速模式下,您仍然可以在search栏原始子视图和新视图之间看到一条细小的线条,但对于用户来说这不是很明显,而且如果您打扰了您,则可以挖掘UISearchbar的视图层次结构,并将视图置于正确的位置。