2

UIView我的应用程序在 ios6 中看起来不错,但在 ios7 中,整个视图都被扭曲了。在 ios7 中,整个视图向上提升。

编辑

然后我应用了这段代码:

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

但仍然没有变化。我该如何解决这个问题?

4

5 回答 5

0

试试这个方法。。

IOS & 显示

或者

这个..

状态栏问题

这种方式使您的所有子视图为 +20 像素,即为 Set the deletaios 7 的所有视图增加 y 轴的 +20。因此,它将在 ios 6 和 7 中显示良好。

于 2013-10-04T05:19:05.163 回答
0

试试我的答案...在 ViewdidLoad 方法中编写该代码..

状态栏问题

快乐编码!!!

于 2013-10-04T05:27:38.483 回答
0

请看下面的说明

使用 xcode 5,

单击xib,转到文件检查器并更改设置如下

部署目标为 ios 7

在这里,您需要根据作为 ios 7 及更高版本的视图创建两个 xib 视图,并以 ios 6 及更早版本和基于 xib 调用的白色条件查看

在 .m 文件中定义以下代码

#define SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(v) ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] != NSOrderedAscending)

如果查看为 IOS 7.0 及更高版本

if (SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"7.0"))

 //Here call ios 7 xib

}别的{

 //Here call ios 6 and earlier xib

}

于 2013-10-04T06:12:42.090 回答
0

//如果导航栏和状态栏都显示在屏幕上,则给它框架
//首先检查设备是否有ios 7
if (SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"7.0"))
{
self.view.frame=CGRectMake(0,64,320,self.view.height);
}

于 2013-10-04T05:22:34.570 回答
-2

您必须为 ios6 和 ios7 创建两个 xib。

如果设备是 ios7,则必须检查条件,而不是调用 ios7 xib,否则请使用 ios6。

于 2013-10-04T07:02:36.587 回答