UIView在iOS 7中显示问题

时间:2013-09-27 04:47:25

标签: iphone ios ios6 view ios7

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

如何解决此问题?

5 个答案:

答案 0 :(得分:5)

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

iOS 6/7 Deltas

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

答案 1 :(得分: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];
    }
}

答案 2 :(得分:2)

修复状态栏问题的步骤:

  1. 将“视图”选项更改为“ IOS 7及更高版本”并从文件中取消选中“使用自动布局选项督察。

  2. 转到尺寸检查器,然后将原始图像增加20像素增加到所选xib中添加的所有控件

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

  4. 在IOS 6和IOS 7中运行应该修复问题。 (确保按照我的提及完美处理y原点和delta值。)

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

    供您参考

    enter image description here

答案 3 :(得分:1)

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

答案 4 :(得分:0)

如果您有自定义UINavigationController,请尝试将translucent的{​​{1}}属性设置为navigationBar,如:

NO

这对我有用