【发布时间】:2013-09-27 04:47:25
【问题描述】:
我已经使用 xib 为 ios 6 制作了应用程序。所有视图都显示为与 xib 完全相同。 但是在 IOS 7 中,由于状态栏的原因,视图向上移动并且底部有一个空白区域。
我该如何解决这个问题?
【问题讨论】:
-
查看此答案将帮助您解决此问题stackoverflow.com/a/19025547/1545180
我已经使用 xib 为 ios 6 制作了应用程序。所有视图都显示为与 xib 完全相同。 但是在 IOS 7 中,由于状态栏的原因,视图向上移动并且底部有一个空白区域。
我该如何解决这个问题?
【问题讨论】:
移动您的视图,使其在 iOS7 中正确显示,并使用界面生成器中的 iOS6/7 Deltas 设置添加正确的增量高度,以便您的视图在 iOS6 中正确显示。
【讨论】:
对于 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];
}
}
【讨论】:
修复状态栏问题的步骤:
将“view as”选项更改为“IOS 7 及更高版本”并取消选中文件中的使用自动布局选项检查员。
转到尺寸检查器并将 20 像素原点 y 值增加到添加到所选 xib 中的所有控件。
对于添加到所选 xib 中的所有控件,将 y 的增量值增加到 -20。
在 IOS 6 和 IOS 7 中运行的问题应该都已修复。 (确保 y 原点和 delta 值如前所述得到完美处理。)
有关详细信息,请在此链接中查看我的答案:https://stackoverflow.com/a/19025547/1545180
供您参考
【讨论】:
您可以通过更改 delta x、delta y、delta width、delta height 中的值,在尺寸检查器上使用 ios6/7 delta 显示轻松地在 ios7 和 ios6 中正确设置 UIView 内容。首先在 ios7 中设置您的值x,y,width,height 然后签出,然后通过减法和加法为 ios6 设置增量。我也这样做,而且很简单,你可以从我那里得到帮助 ant time..谢谢
【讨论】:
如果您有自定义UINavigationController,请尝试将navigationBar 的translucent 属性设置为NO,例如:
navigationBar.translucent = NO;
这对我有用
【讨论】: