iOS 6&7状态栏设计
问题描述:
我目前正在使用iOS 6应用程序。在iPhone 4/5上运行此应用程序运行良好。唯一的问题是,随着新的iOS 7出现,设计被破坏。状态栏现在是应用程序的一部分,我的应用程序中的所有视图都会推到顶部,与状态栏重叠。iOS 6&7状态栏设计
解决此问题的最佳解决方案是什么?我正在使用UINavigationController和一些自定义视图。做了一些阅读,有人建议我包含一个自定义容器视图来创建类似iOS 6'状态栏'的东西,因为顶部的视图是黑色和空白的。还有其他解决方案吗?或者,也许正确的方法来修复我的应用程序以支持iOS 6设计?
答
下面
有一个最简单的解决方案。我们必须谢谢苹果这个概念。
结帐从实用Inspector窗口4片
- 首先的解决方案,情节提要/厦门国际银行改变屏幕尺寸4" 根据设计安排您uicontrols(即开始制定下状态栏)
- 现在进入第五标签进入实用Inspector窗口
- 您必须帧的每个控制
- 打开你的眼睛框下并且您可以看到iOS6/7 Deltas
- 在DeltaY字段中,为每个控件减少20个像素。我的意思是在Delta Y字段中填写-20--
- 因此,现在用两个iOS7 & 6运行你的项目,你会得到你想要的。
注:你必须有取消选中“使用自动布局”,以使用增量
欣赏节目!
答
一个解决方案,让您可以:
- 同时支持iOS6的和iOS7作为部署目标。
- 保留现有的iOS6的风格的代码,并推迟了重新设计
的影响。 。 。是将以下内容添加到您的视图控制器:
#define SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(v) ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] != NSOrderedAscending)
if (SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"7"))
{
self.edgesForExtendedLayout = UIRectEdgeNone;
}
。 。因为,我使用基于代码的意见,我添加它的loadView,但它也将在viewDidLoad中
工作
答
在didFinishLaunching
if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7) {
[application setStatusBarStyle:UIStatusBarStyleLightContent];
self.window.clipsToBounds =YES;
self.window.frame = CGRectMake(0,20,self.window.frame.size.width,self.window.frame.size.height-20);
}
+0
- 1为:状态栏不总是20px。在通话或记录事件超过20px。 (尝试使用cmd(或ctrl)+ T) –
尝试self.navigationController.navigationBar试试这个在您的AppDelegate.m。半透明= NO;在你的ViewController中。 –
检查此链接http://stackoverflow.com/a/18886468/1160493 – wesley
@EvgeniyS试过。似乎没有任何影响 – Azuan