iOS 7状态栏与视图中的文本重叠

时间:2013-09-13 11:23:47

标签: iphone ios

iOS 7状态栏与视图重叠。文本显示在屏幕的标题中。我想在屏幕上显示名为“Carrier,4:49和Battery”的标题中的文字

如何在iOS 6和iOS 7中处理此问题? enter image description here

6 个答案:

答案 0 :(得分:1)

你可以隐藏它,我想在你的情况下看起来会更好。

在你的app plist中添加

查看基于控制器的状态栏外观,并设置为NO

答案 1 :(得分:1)

我认为它可以帮到你:

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

答案 2 :(得分:1)

答案 3 :(得分:0)

不幸的是,你不是唯一有这个问题的人, 虽然在iOS之前的7点,{0,0}点位于状态栏下方,它现在位于屏幕顶部,我的建议是在iOS 7中为每个y坐标添加+ 20.0f

if (floor(NSFoundationVersionNumber) <= NSFoundationVersionNumber_iOS_6_1) {
   // normal comportment
} else {
   // add 20.0f offset
   // you might also want to add a UIImageView subview to go behind the status bar (20pt of height, full width)
}

你可以在视图didLoad中进行,对于我来说,我在我的视图控制器的+(void)initialize类方法中初始化的静态变量中计算我的元素位置

如果在 - (void)viewDidLoad类似

if (floor(NSFoundationVersionNumber) <= NSFoundationVersionNumber_iOS_6_1) {
   // normal comportment
} else {

   for (UIView *v in self.view.subviews) {
     CGRect oldFrame = v.frame;
     v.frame = CGRectMake(oldFrame.origin.x, oldFrame.origin.y + 20.0f, oldFrame.size.width, oldFrame.size.height);
   }

   // you might also want to add a UIImageView subview to go behind the status bar (20pt of height, full width)
}

答案 4 :(得分:0)

它不是iOS 7的问题。因为状态栏在iOS7中是透明的。所以你需要手动处理它。所以请在这里使用正确的图像。

答案 5 :(得分:0)

这可能会对您有所帮助How to fix iOS 7 Status bar overlapping issue and status bar style

对我有用。