3

我已经使用 xib 为 ios 6 制作了应用程序。所有视图都显示为与 xib 完全相同。但是在 IOS 7 中,由于状态栏的原因,视图向上移动并且底部有一个空白区域。

我该如何解决这个问题?

4

5 回答 5

5

移动您的视图,使其在 iOS7 中正确显示,并使用iOS6/7 Deltas界面生成器中的设置添加正确的增量高度,以便您的视图在 iOS6 中正确显示。

iOS 6/7 增量

另见:https ://stackoverflow.com/a/19025547/1545180

于 2013-09-27T04:50:21.077 回答
3

对于 IOS7,您可以从顶部离开状态栏高度,这在 IOS6 中是默认设置的。

float SystemVersion=[[[UIDevice currentDevice] systemVersion] floatValue];

if(SystemVersion<7.0f)
{
    //Currently your app is running in IOS6 or older version. So you need not to do anything.  
}
else
{
    // Currently your app is running in IOS7. Do the following.

    CGRect TempRect;
    for(UIView *sub in [[self view] subviews])
    {
        TempRect=[sub frame];
        TempRect.origin.y+=20.0f; //Height of status bar
        [sub setFrame:TempRect];
    }
}
于 2013-09-27T04:51:21.407 回答
2

修复状态栏问题的步骤:

  1. 将“查看为”选项更改为“ IOS 7 及更高版本”并取消选中文件检查器中的使用自动布局选项。

  2. 转到尺寸检查器并将原点 y值的 20 像素增加到所选 xib 中添加的所有控件

  3. 并将所选 xib 中添加的所有控件delta 值增加到 -20 。

并且在 IOS 6 和 IOS 7 中运行的问题都应该得到修复。(确保 y 原点和增量值得到完美处理,正如我提到的那样。)

有关明确信息,请参阅此链接中的答案:https ://stackoverflow.com/a/19025547/1545180

供你参考

在此处输入图像描述

于 2013-09-27T05:05:05.550 回答
1

您可以通过更改 delta x、delta y、delta width、delta height 中的值,在尺寸检查器上使用 ios6/7 delta 显示轻松地在 ios7 和 ios6 中正确设置 UIView 内容。首先在 x、y 中设置 ios7 的值,宽度,高度,然后签出,然后通过减法和加法设置 ios6 的增量。我也喜欢这样做,这很容易,你可以从我那里得到帮助 ant time..谢谢

于 2013-09-27T05:03:48.597 回答
0

如果您有自定义UINavigationController尝试将translucent属性设置navigationBarNO喜欢:

navigationBar.translucent = NO;

这对我有用

于 2013-09-27T04:58:33.903 回答