UIView在iOS 7中显示问题

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

我该如何解决这个问题?

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

iOS 6/7 Deltas

另请参阅: https : //stackoverflow.com/a/19025547/1545180

对于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]; } } 

修复状态栏问题的步骤:

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

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

  3. 对于所选xib中添加的所有控件,ydelta值增加到-20

并且应该修复IOS 6和IOS 7中的问题。 ( 确保按照我的提法完美处理y原点和delta值。)

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

供你参考

在此处输入图像描述

您可以通过在尺寸检查器上使用ios6 / 7 delta显示,通过更改delta x,delta y,delta width,delta height中的值,在ios7和ios6中正确设置UIView内容。首先在x,y中设置ios7的值,宽度,高度,然后检查,然后通过减去和添加数字设置ios6的增量。我也喜欢这样,它是如此简单,你可以得到我的帮助ant时间..谢谢

如果您有自定义UINavigationController尝试将navigationBartranslucent属性设置为NO如:

 navigationBar.translucent = NO; 

这对我有用

Interesting Posts