ios 6和ios 7在视图中的相关性
正如我们在iOS 7中所了解的那样,状态栏与视图重叠但在iOS 6中不重叠。ios 6和ios 7在视图中的相关性
我开发了iOS7的整个应用程序,现在我被要求为它提供iOS6支持 但它只是一团糟。
,因为我们在这个问题Overlaps the status bar on view iOS7看到有针对iOS 7的解决方案是像iOS6的
,但我可以把它相反的方式?并以某种方式使iOS 6的行为像iOS7的状态栏?
你不能让iOS 6状态栏像iOS 7状态栏一样行动,它们是完全不同的设计。 iOS 7使用平板UI,而iOS 6则不使用。请仔细阅读iOS 7 transition guide,以便更好地了解以及如何处理差异。
具体朝向状态栏here是该文档的一部分,告诉您如何处理它。
简答:不,你不能。
iOS 6 SDK不允许您像iOS 7那样控制状态栏。
你可以做的是调整大小,因此它不会在您的实际布局
首先失去任何结构,你可以定义一个常量知道什么时候它的iOS 7与否:
#define kIS_IOS_7 (floor(NSFoundationVersionNumber) > NSFoundationVersionNumber_iOS_6_1)
那么在你的AppDelegate你可以改变导航栏外观如下:
UIView *background = [[UIView alloc] init];
if (kIS_IOS_7) {
background.frame = CGRectMake(0, 0, 360, 64);
} else {
background.frame = CGRectMake(0, 0, 360, 44);
}
background.backgroundColor = [UIColor blackColor]; // choose your color or image
UIGraphicsBeginImageContext(background.frame.size);
CGContextRef context = UIGraphicsGetCurrentContext();
[background.layer renderInContext:context];
UIImage *backgroundImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
[[UINavigationBar appearance] setBackgroundImage:backgroundImage
forBarMetrics:UIBarMetricsDefault];
所以我不能使状态栏是transperent并将我的整个视图范围原点y移动到-20? –
@ user2957713不在iOS 6上没有抱歉。我提供的指南中包含了您在支持iOS 6和iOS 7方面可能遇到的所有问题。还有一些必须和应该在那里,如果支持两者,您可能需要阅读。 – Popeye
好吧,似乎我会有难的时间:( 感谢您的回答 –
感谢您的回答! –