IOS7状态栏StatusBar官方标准适配方法
2015-05-12 09:04
351 查看
本文转载自:/article/2742977.html
IOS7状态栏StatusBar官方标准适配方法
hello,大家好,ios7正式版已经发布,相信大家都在以各种方式来适配ios7.
如果你已经下载了xcode5,正准备使用,你会发现各种布局的改变.
注定这段时间是忙的,是头疼的!原创在此哦http://my.csdn.net/rhljiayou
这两天经常会碰到群里有人在问问题,问ios7怎么适配,以及各种网上说的如何解决ios7下状态栏的问题.
我发现各种群里流传着一种适配方法,就是修改window的坐标(window.frame),然后大家纷纷效仿,但是往往出现各种问题,发出各种报怨,各种吐嘈;
殊不知别人的写法并不是你的写法,别人的适配也不是你的适配,所以别的方法不一定能解决你的问题.我们要理解他,得到解决思路,而不是解决代码.
其实官方已经给出状态栏同时兼容ios6和ios7的解决方案.他就集成在xcode5中,如下图所示:
着急做适配,可能会做错喔!原创在此哦http://my.csdn.net/rhljiayou
要了解这个适配先要讲一下Deltas也就是这个 ∆,上过高中物理都应该知道这个东西,不认识的请自觉检讨(初中数学就教过).
Deltas的意思你可以理解为增量.相对增量.
科普讲完,下面是具体使用.
首先要出现∆选项,必须使用xcode5的方式打开xib:
在xib的第一个标签中哦~原创在此哦http://my.csdn.net/rhljiayou
由于我们要同时兼容6和7,所以我们需要选6.1或更早
然后调整增量,增量的意思是如果运行在ios7的模式下,就使其坐标+增量,如果是6或更早的,就是直接使用上面的坐标
效果如图,十分完美,呵呵原创在此哦http://my.csdn.net/rhljiayou
目录[-]
参考链接: 1./article/2742977.html 第一种方法:修改BaseSDK XCode5的默认BaseSDK是iOS7,所以要修改成工程文件创建时的BaseSDK。但是XCode5中默认只带有iOS7的SDK,所以要想能做到更改SDK,我们就要添加旧的SDK。
第一种方法:修改BaseSDK
第二种方法:手动代码设置各个UI组件的frame
第三种方法:改变window
第四种方法:对每个UIViewController的.m文件中编写代码进行设置(推荐)
1.从苹果开发者中心下载旧版本XCode,https://developer.apple.com/downloads/index.action?name=Xcode
2.从中提取出iPhoneOS
SDK 和iPhone Simulator SDK,前者所在的位置是XCode应用程序包中的路径是Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs,后者是Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs
3.假设我们已经安装了XCode5,那么我们在应用程序中找到XCode.app右击显示包内容,依此 Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs 路径打开,把提取出的iPhoneOS
SDK复制进去。模拟器SDK的拷贝也同理。
4.重启XCode,这个时候就可以设置Base SDK了
5.假如设置成iOS6,那么应用就算在运行iOS7的设备上也是呈现iOS6的特性。举个例子,倘若此应用在需要输入的时候弹出的键盘是iOS6样式的并不是iOS7样式的。
6.可以参考http://github.kimziv.com/blog/2013/09/22/how-to-use-older-base-sdks-in-xcode5/
#define iOS7 ([[[UIDevice currentDevice]systemVersion] floatValue] >= 7.0)?YES:NO
2.再根据不同的系统设置Frame
2.在AppDelegate.m中
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions;
添加
在iOS7当中未使用UINavigationController界面相对iOS6会上移20px,使用了会上移64px。简单的说导航栏和状态栏默认都会覆盖下面的页面,使用下面的方法就可以避免
if ([[[UIDevice currentDevice]systemVersion]floatValue]>=7.0)
{
self.edgesForExtendedLayout = UIRectEdgeNone;
}
IOS7状态栏StatusBar官方标准适配方法
hello,大家好,ios7正式版已经发布,相信大家都在以各种方式来适配ios7.
如果你已经下载了xcode5,正准备使用,你会发现各种布局的改变.
注定这段时间是忙的,是头疼的!原创在此哦http://my.csdn.net/rhljiayou
这两天经常会碰到群里有人在问问题,问ios7怎么适配,以及各种网上说的如何解决ios7下状态栏的问题.
我发现各种群里流传着一种适配方法,就是修改window的坐标(window.frame),然后大家纷纷效仿,但是往往出现各种问题,发出各种报怨,各种吐嘈;
殊不知别人的写法并不是你的写法,别人的适配也不是你的适配,所以别的方法不一定能解决你的问题.我们要理解他,得到解决思路,而不是解决代码.
其实官方已经给出状态栏同时兼容ios6和ios7的解决方案.他就集成在xcode5中,如下图所示:
着急做适配,可能会做错喔!原创在此哦http://my.csdn.net/rhljiayou
要了解这个适配先要讲一下Deltas也就是这个 ∆,上过高中物理都应该知道这个东西,不认识的请自觉检讨(初中数学就教过).
Deltas的意思你可以理解为增量.相对增量.
科普讲完,下面是具体使用.
首先要出现∆选项,必须使用xcode5的方式打开xib:
在xib的第一个标签中哦~原创在此哦http://my.csdn.net/rhljiayou
由于我们要同时兼容6和7,所以我们需要选6.1或更早
然后调整增量,增量的意思是如果运行在ios7的模式下,就使其坐标+增量,如果是6或更早的,就是直接使用上面的坐标
效果如图,十分完美,呵呵原创在此哦http://my.csdn.net/rhljiayou
原 iOS7的界面上移问题
目录[-]参考链接: 1./article/2742977.html 第一种方法:修改BaseSDK XCode5的默认BaseSDK是iOS7,所以要修改成工程文件创建时的BaseSDK。但是XCode5中默认只带有iOS7的SDK,所以要想能做到更改SDK,我们就要添加旧的SDK。
第一种方法:修改BaseSDK
第二种方法:手动代码设置各个UI组件的frame
第三种方法:改变window
第四种方法:对每个UIViewController的.m文件中编写代码进行设置(推荐)
参考链接:
1./article/2742977.html
第一种方法:修改BaseSDK
XCode5的默认BaseSDK是iOS7,所以要修改成工程文件创建时的BaseSDK。但是XCode5中默认只带有iOS7的SDK,所以要想能做到更改SDK,我们就要添加旧的SDK。
1.从苹果开发者中心下载旧版本XCode,https://developer.apple.com/downloads/index.action?name=Xcode2.从中提取出iPhoneOS
SDK 和iPhone Simulator SDK,前者所在的位置是XCode应用程序包中的路径是Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs,后者是Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs
3.假设我们已经安装了XCode5,那么我们在应用程序中找到XCode.app右击显示包内容,依此 Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs 路径打开,把提取出的iPhoneOS
SDK复制进去。模拟器SDK的拷贝也同理。
4.重启XCode,这个时候就可以设置Base SDK了
5.假如设置成iOS6,那么应用就算在运行iOS7的设备上也是呈现iOS6的特性。举个例子,倘若此应用在需要输入的时候弹出的键盘是iOS6样式的并不是iOS7样式的。
6.可以参考http://github.kimziv.com/blog/2013/09/22/how-to-use-older-base-sdks-in-xcode5/
第二种方法:手动代码设置各个UI组件的frame
1.判断当前设备的系统#define iOS7 ([[[UIDevice currentDevice]systemVersion] floatValue] >= 7.0)?YES:NO
2.再根据不同的系统设置Frame
第三种方法:改变window
1.需要在Info.plist配置文件中,增加键:UIViewControllerBasedStatusBarAppearance,并设置为YES2.在AppDelegate.m中
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions;
添加
第四种方法:对每个UIViewController的.m文件中编写代码进行设置(推荐)
推荐使用这种方法在iOS7当中未使用UINavigationController界面相对iOS6会上移20px,使用了会上移64px。简单的说导航栏和状态栏默认都会覆盖下面的页面,使用下面的方法就可以避免
if ([[[UIDevice currentDevice]systemVersion]floatValue]>=7.0)
{
self.edgesForExtendedLayout = UIRectEdgeNone;
}
相关文章推荐
- IOS7状态栏StatusBar官方标准适配方法
- IOS7状态栏StatusBar官方标准适配方法
- IOS7状态栏StatusBar官方标准适配方法
- [置顶] IOS7状态栏StatusBar官方标准适配方法
- IOS7状态栏StatusBar官方标准适配方法
- iOS疯狂详解之IOS7状态栏StatusBar官方标准适配方法
- IOS7状态栏StatusBar官方标准适配方法
- IOS7状态栏StatusBar官方标准适配方法
- IOS7状态栏StatusBar官方标准适配方法
- IOS7状态栏StatusBar官方标准适配方法
- IOS7状态栏StatusBar官方标准适配方法
- IOS7状态栏StatusBar官方标准适配方法
- IOS7状态栏StatusBar官方标准适配方法
- IOS7状态栏StatusBar官方标准适配方法
- IOS7状态栏StatusBar官方标准适配方法
- IOS7状态栏StatusBar官方基准适配方法
- IOS学习笔记56-IOS7状态栏适配方法
- IOS学习笔记56-IOS7状态栏适配方法一
- IOS学习笔记56-IOS7状态栏适配方法一
- IOS7状态栏标准适配