【问题标题】:iOS 7 Status Bar Collides With NavigationBar using ViewControlleriOS 7 状态栏与使用 ViewController 的 NavigationBar 发生冲突
【发布时间】:2014-04-18 08:31:55
【问题描述】:

我是 iOS 开发的初学者。目前我正在将 ios5 代码迁移到 ios7。

在我的代码中出现以下重叠问题:http://s17.postimg.org/90m7mx5lb/collide.png

我已使用以下代码更新了应用委托:

self.window.frame =  CGRectMake(0,20,self.window.frame.size.width,self.window.frame.size.height-20);

界面等直接通过 ViewController 代码生成,而不是使用 Interface Builder 或 StoryBuilder。

请指教..

更新:

在所有视图控制器中使用以下内容

UIImage *stretchImage=[UIImage imageNamed:kNavigationBg]; stretchImage=[stretchImage stretchableImageWithLeftCapWidth:1 topCapHeight:0]; [self.navigationController.navigationBar setBackgroundImage:stretchImage forBarMetrics:UIBarMetricsDefault];

【问题讨论】:

  • 五月THIS可以帮助你。

标签: ios uinavigationcontroller uinavigationbar ios7-statusbar


【解决方案1】:

在您的 plist 中将基于视图控制器的状态栏外观设置为 NO。

【讨论】:

  • 我有一个 VideoPlayer,当我将基于视图控制器的状态栏设置为 NO 并返回应用程序时。尺寸变得完美。请指教。
  • 从媒体播放器返回后,根据需要更新导航栏的高度
  • 在主要问题中添加了视图控制器代码。这有帮助吗??
【解决方案2】:

在 Storyboard 中选择每个 ViewController,然后勾选“Under top bars”、“Underbottm bars”两个选项

以编程方式,

self.edgesForExtendedLayout = UIRectEdgeNone;

【讨论】:

  • 没有故事板.. 整个代码是通过 viewcontroller.m 完成的
  • 然后使用edgesForExtendedLayoutextendedLayoutIncludesOpaqueBars
  • 对不起,我应该在哪里添加这个 appdelegate 或个人视图控制器。我对 ios 很陌生.. 谢谢
  • 在每个 VeiwController 的 viewDidLoad 中
  • 在主要问题中添加了视图控制器代码。这有帮助吗??
【解决方案3】:

你应该添加

if(IS_IOS7)
{
    self.edgesForExtendedLayout=UIRectEdgeNone;
}

【讨论】:

  • 试试 UIRectEdgeBottom,如果你的导航栏不透明,试试 [self setExtendedLayoutIncludesOpaqueBars:YES]
  • 在 appdelegate 中尝试添加 [[UINavigationBar 外观] setBarStyle:UIBarStyleBlackOpaque];上面的代码不变
  • 在主要问题中添加了视图控制器代码。这有帮助吗??
猜你喜欢
  • 2013-10-06
  • 1970-01-01
  • 2015-01-22
  • 2018-02-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-10-09
相关资源
最近更新 更多