UIview在iOS7中看起来失真,但适用于iOS6和其他版本



我的应用程序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];
    }
}

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

试试这种方式。

IOS & DISPLAY

这。。

状态栏问题

这样使您的所有子视图为 +20 像素,即增加所有视图的 y 轴的 +20 Set the deleta适用于 iOS 7。因此,它将在iOS 6和7中显示优点。

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

div class="one_answers">

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

状态栏问题

快乐编码!!

请参阅下面的注释

使用 xcode 5,

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

部署目标为 iOS 7

在这里,您需要基于iOS 7及更高版本的

视图和基于xib调用的iOS 6及更早版本的视图以及基于xib调用的白色条件的2个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

}else{

 //Here call ios 6 and earlier xib

}

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

比您必须检查设备是否为 ios7 的条件,而不是调用 ios7 xib 否则转到 ios6。

最新更新