iOS 7 + iPad:UISearchBar导致导航栏内容与状态栏混合

时间:2013-12-26 16:20:34

标签: ios ios7 uisearchbar statusbar

仅在iPad上发生:

  • UISearchBar中添加一个简单的UIViewController UINavigationController
  • [可选]设置条纹色调:self.navigationController.navigationBar.barTintColor = [UIColor clearColor];
  • 运行应用程序。
  • 点按搜索栏(触发动画)
  • 现在状态栏与导航栏内容的顶部(即标题,按钮)混合

点按前: enter image description here

点击搜索栏后: enter image description here

问题出现在任何颜色上,但使用附加照片中的[UIColor clearColor]可以更轻松地查看问题。

任何解决方案都会很棒,虽然我更喜欢比每次隐藏导航栏标题和按钮更优雅的东西。

修改

只有在viewdidLoad中使用以下代码时才会发生此错误:

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

4 个答案:

答案 0 :(得分:0)

我想我曾经遇到过同样的问题。如果您正在使用故事板,请检查所有插座是否已设置:

enter image description here

修复了动画......

答案 1 :(得分:0)

我最终使用的解决方法:

- (BOOL)prefersStatusBarHidden
{
    if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
        return self.searchDisplayController.isActive;

    return NO;
}

这种方式在用户搜索时会隐藏状态栏。

答案 2 :(得分:0)

有完全相同的问题,并且修复结果是一行:

self.searchDisplayController.searchBar.translucent = NO;

答案 3 :(得分:0)

我遇到了同样的问题。以下代码有效:

self.edgesForExtendedLayout = UIRectEdgeTop;