繁体   English   中英

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

[英]iOS 7 + iPad: UISearchBar causes navigation bar content to be mixed with status bar

这只发生在iPad上:

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

点按之前: 在此输入图像描述

点击搜索栏后: 在此输入图像描述

任何颜色都会出现问题,但在附带的照片中使用[UIColor clearColor]可以更容易地看到问题。

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

编辑

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

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

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

在此输入图像描述

修复动画...

我最终使用的解决方法:

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

    return NO;
}

这种方式,当用户搜索它时隐藏状态栏。

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

self.searchDisplayController.searchBar.translucent = NO;

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

self.edgesForExtendedLayout = UIRectEdgeTop;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM