iOS开发 _ iOS7的兼容之上移20

前提,开发工具是XCode5

第一个问题,有些旧的工程文件在XCode5下编译会产生界面向上偏移20

原因,旧系统和iOS7的self.view的尺寸不同,以iPhone5来举例,旧系统中self.view.frame.size.height是548。而新的iOS7系统是568。这样就产生了20的上移。

解决这20的方法如下:

第一种方法:修改BaseSDK

XCode5的默认BaseSDK是iOS7,所以要修改成工程文件创建时的BaseSDK。但是XCode5中默认只带有iOS7的SDK,所以要想能做到更改SDK,我们就要添加旧的SDK。

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/

第二种方法:手动代码设置各个UI组件的frame

1.判断当前设备的系统

#define iOS7 ([[[UIDevice currentDevice]systemVersion] floatValue] >= 7.0)?YES:NO

2.再根据不同的系统设置Frame

第三种方法:改变window

1.需要在Info.plist配置文件中,增加键:UIViewControllerBasedStatusBarAppearance,并设置为YES

2.在AppDelegate.m中

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions;

添加

第四种方法:对每个UIViewController的.m文件中编写代码进行设置

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值