如何让你的App适配iOS7?
随着苹果在2013年9月18日发布iOS7最新的系统以来,iOS各种设备升级到iOS7的数字就已经不断刷新记录。目前据外界统计iOS7设备装机量已经达到2.5亿部,已占iOS设备的64%。由此可见让自己的app适配到iOS7是如此的重要。下面就说一下采取哪种方法能让你的app适配iOS7的要求。
第一种,你的app使用自带的UINavgationController的导航栏
众所周知,iOS7的标题栏(statusbar)已经和视图重叠在一起,所以y坐标的值有所改变。从而导致原来的app头部坐标向上偏移,而不是显示在正确的位置。如果你的app使用了下面的特性如下:

那么恭喜你,你只需要在你的ViewController里面的ViewDidLoad里面加入下面这句话就可以完成了适配:
self.edgesForExtendedLayout = UIRectEdgeNone;
然后你的app导航栏和状态栏的位置就已经恢复正确了。
第二种:你没有用系统自带的导航栏而是自己贴视图(View)模拟成导航栏的样子:
这种情况你就需要在AppDelegate文件里加入下面的代码:
) {
[application setStatusBarStyle:UIStatusBarStyleLightContent];
self.window.clipsToBounds =YES;
self.window.frame = CGRectMake(,,self.window.frame.size.width,self.window.frame.size.height);
self.window.bounds = CGRectMake(,, self.window.frame.size.width, self.window.frame.size.height);
[[NSUserDefaults standardUserDefaults] setFloat:self.window.frame.size.height forKey:@"windowHeight"];
}
如果你用到了pushViewController的方法,别忘记在目的视图的ViewDidAppear里面加入下面的代码:
-(void)viewDidAppear:(BOOL)animated
{
[super viewDidAppear:animated];
) {
CGRect frame=self.view.frame;
if (frame.size.height==[[NSUserDefaults standardUserDefaults] floatForKey:@"windowHeight"])
{
frame.size.height-=;
}
self.view.frame=frame;
}
}
这样你的app也已经完成了适配。其实适配起来也还算蛮方便的。最后展示一下我的app在iOS7下面的效果。


参考资料:
iOS 7 status bar back to iOS 6 style?
如何让你的App适配iOS7?的更多相关文章
- App升级iOS7体会
本文转自App升级iOS7体会. xcode5 GM版已经发布,虽然还是pre-release版,但离最终版不远了.对于没有用到新特性的app面临的最大问题就是UI的变化.Apple提供了UI Tra ...
- iOS开发——适配篇&App适配简单概括
App适配简单概括 1:适配:适应.兼容各种不同的情况 系统适配 针对不同版本的操作系统进行适配 屏幕适配 针对不同大小的屏幕尺寸进行适配 在用户眼中 屏幕是由无数个像素组成的 像素越多,屏幕越清晰 ...
- App适配iPhone 6/ Plus和iOS 8:10条小秘诀
App适配iPhone 6/ Plus和iOS 8:10条小秘诀 iPhone 6iOS 8适配 (原文:raywenderlich 作者:Jack Wu 译者:@TurtleFromMars ...
- 适配iOS7之—UITableView和UISearchBar
iOS7中,如果用UITableViewStyleGrouped的话,里面的cell会比原来的拉长了,这样做应该是为了统一和UITableViewStylePlain风格时cell的大小一致,所以改用 ...
- APP适配IOS8,iPhone6和Plus截图简要说明
本文转载至 http://blog.csdn.net/yongyinmg/article/details/41422873 原文:http://www.zcool.com.cn/article/ZMT ...
- TableViewCell Swipe to Delete and More Button(like mail app in iOS7 or later)
在iOS7系统的Mail App中TableViewCell的一个功能让我们做TableView的比较羡慕,就是滑动cell,右边出现了两个按钮,如下: 网上在github上有很多大牛用custom ...
- 通讯录--(适配iOS7/8/9)
导入库#import <AddressBook/AddressBook.h> #import <AddressBookUI/AddressBookUI.h> #pragma m ...
- 你可能需要为你的APP适配iOS11
WeTest 导读 iOS 11 为整个生态系统的 UI 元素带来了一种更加大胆.动态的新风格. 本文介绍了iOS11在UI方面做了哪些更新,有些更新可以为用户提供更加完美的体验,但也有的可能会给目 ...
- Web App适配iPhoneX
前言 Iphone每次退出新尺寸的手机都会掀起一番适配风波,这次没有下巴但有刘海的iPhoneX更是如此,网传横屏下的适配动画更是令不少人汗颜. 其实对于Native App来说,适配并不算困难(当然 ...
随机推荐
- Java算法之字符串反转分析
本文来自http://blog.csdn.net/liuxian13183/ ,引用必须注明出处! 在基本的工作内容开发中,算法不会显得那么重要,而在百万级别的时候,差距非常大,今天带大家研究下常见的 ...
- cloudera learning4:Hadoop集群规划
涉及到一些关于硬件的东西,我也不是很懂,记录下来有待以后学习. Hadoop集群一般都是由小到大,刚开始可能只有4到6个节点,随着存储数据的增加,计算量的增大,内存需求的增加,集群慢慢变大. 比如按照 ...
- 升级Xcode8控制台打印出来这些东西
升级Xcode 8之后每次控制台都会出现以下情况: subsystem: com.apple.BackBoardServices.fence, category: App, enable_level ...
- 由LazyMan联想到的
LazyMan问题与解法 http://mp.weixin.qq.com/s/drNGvLZddQztcUzSh8OsSw 给出了一道题目,并给出了解法: 题目: 实现一个LazyMan,可以按照以下 ...
- SSIS 连接ORACLE 无法从 SQL 命令中提取参数的解决方案
第一步: 定义包变量:maxdate 类型为String 定义包变量:sqlStatement类型为String,值为:select * from i_out_serv_mon 第二步: 取&q ...
- sync_object not in ('TBL_Territory')
sync_objec 不包含TBL_Territory这个字段
- workerman centos 7 开机自动启动
第一步: vim /lib/systemd/system/workerman.service 第二步:复制以下代码保存退出,注意修改你的workerman路径 [Unit] Description=w ...
- 笔记——shell脚本学习指南
<shell脚本学习指南>机械工业出版 ISBN 987-7-111-25504-8 第2章 2.4 初级陷阱 1.当今的系统,对#!这一行的长度限制从63到1024个字符都有,尽量不要超 ...
- sql语句把字段中的某个字符去掉
sql语句把字段中的某个字符去掉 )),'http://demo.m-school.net','') 例如: )),'http://192.168.2.180','') )),'http://zpzx ...
- Nodejs express 文件上传
文件上传 以下我们创建一个用于上传文件的表单,使用 POST 方法,表单 enctype 属性设置为 multipart/form-data. index.htm 文件代码修改如下: <html ...