图文讲解如何解决App的iOS 7顶部状态栏适配问题_IOS

首先说明下,ios7中,由于status bar不再占用单独的20px,如果app需要同时支持ios7和ios6.1以下,那就需要适配下了,适配开始:
先看用xcode新建项目后 IOS7和IOS6上的的运行效果:
ps:一个empty application 里面+了一个rootcontroller,作为window的根控制器,view里面放了一个tableview;


是不是遇到的IOS7的新问题,状态栏跟tableview重叠了,OK,看见这个不想看到的结果,下面我们就开始正式的解决掉这个招人不喜欢的效果。
第一步:不要勾选xib中的Use Autolayout,如下图:

第二步:第二步:选择View as “ios6.1 and Earlier”,还是上图位置处;
第三步:在Size Inspector中,有一ios6/7 Deltas:分别表示在PosX的增量、PosY的增量、宽度增量、高度增量。

ps:在“ios6.1 and Earlier”模式下,由于status bar的高度为20,所以当app运行在ios7.0模式下时,需要view向下移动20像素,因此在ΔY上设置为20.
tableView坐标向下移动了20,由于整个屏幕的高度是不变的,所以在“ios7.0 and Later”模式下,需要将tableView的高度减去20像素,即在“ios6.1 and Earlier”模式下,设置tableView的ΔHeight为 -20。如果不设置ΔHeight,tableView底部会有20像素是不可见的,可以测试demo看看。
***注***:Δ,正数表示增,负数表示减。
第四步:ok,设置完成,到IOS上看效果:

是不是神奇的发现跟以前的有似曾相识的赶脚呢。。。这样“ios6.1 and Earlier”和“ios7.0 and Later” UI布局便统一了。

另一种方法
上面通过XIB的设置达到了状态栏和view重合的问题,接下来我们讲一讲网传的修改window frame方法。
先上步骤:
第一:在appdeletage里面 添加如下代码:

  if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7.0) {
  self.window.frame = CGRectMake(0.0f,20.0f,self.window.frame.size.width,self.window.frame.size.height-20.0f);
  }

2.在info.plist文件里面 属性:View controller-based status bar appearance  值设为NO。
下面看效果:

在看下图,你会发现一个问题:

这是什么原因导致的呢?我发现,由于window你又548变成了528吧,但是你发现tableview的高度还是548,导致了有20个像素不能显示。那有的同学会说,直接改成528不就得了么,是的,可以改,改后你发现IOS7上确实没有了缺像素的问题,但是在IOS6有直接缺半截,看下图:

所以呢,由我亲自测试,这种方法想要适配IOS7和IOS6有点不太靠谱。
最后解释一下几个名词设置的作用:

- (UIStatusBarStyle)preferredStatusBarStyle
{
 return UIStatusBarStyleLightContent;
}
- (BOOL)prefersStatusBarHidden
{
 return NO;
}

在plist中设置View controller-based status bar appearance  值设为YES..
这些的作用是:基于controller,动态控制statusbar的隐藏与样式。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索ios
, 状态栏
, status
, 7
bar
ios 状态栏 高度适配、android 状态栏适配、ios7状态栏适配、小米状态栏适配、适配乐视手机状态栏,以便于您获取更多的相关知识。

时间: 2024-11-08 19:22:26

图文讲解如何解决App的iOS 7顶部状态栏适配问题_IOS的相关文章

详解在iOS App中自定义和隐藏状态栏的方法_IOS

自定义状态栏 有时候,需要在状态栏上显示一些自定义信息,比如新浪微博的官方iOS客户端:告知用户信息处于发送队列.发送成功或者发送失败. 如上图,通过在状态栏显示自定义信息,可以给用户友好又不影响软件使用的提示. 为此,我们显得定义一个自定义状态栏类,包含一个显示信息的Label: 复制代码 代码如下: @interface CustomStatusBar : UIWindow  {      UILabel *_messageLabel;  }    - (void)showStatusMes

ios-Delphi XE8开发FMX 的App,IOS持续使用一段时间程序被系统杀了。。什么原因??

问题描述 Delphi XE8开发FMX 的App,IOS持续使用一段时间程序被系统杀了..什么原因?? 程序主要用于数据库查询,有40个Form,在安卓里是完全没问题的,但是到ios里就会闪退.delphi官方说一套代码,多平台通用,结果悲剧了.检查代码,感觉没有错误,在安卓下一只查询数据也不会闪退.可到了Iphon6上,刚开始没问题,多查询几次就会闪退,郁闷死我了.后来以为窗体太多是不是太占内存,就改代码,除了主窗体,其他窗体一律动态创建,关闭窗体时候马上Free:Clientdataset

ios-【重要】在线等! 公司要开发APP涉及IOS 安卓 WEB 求解决方案!

问题描述 [重要]在线等! 公司要开发APP涉及IOS 安卓 WEB 求解决方案! 如题: 公司要组建项目组 求人员部署方案.及预计资金 产品要能实现安卓IOS客户端 家长端 客户端:可以实时定位孩子的位置 历史行进轨迹 检测孩子的健康状况 家长端:可以实现实时APP/WEB监控孩子的状况 怎么实现信息跨平台? 比如孩子用安卓的手机 父母用苹果的 怎么互通 如何通过公司自己开发的智能设备通过什么途径传递信息?假设没有wifi或者3G/4G的情况下(可以通过GPS实现吗?) 还有整个开发环境的配置

开发-Android app和IOS app 更新机制的区别

问题描述 Android app和IOS app 更新机制的区别 公司最近准备开发一款小应用,需要先调查一下Android平台和IOS平台application的更新机制的区别,没有移动app的开发经验,公司计划用开源跨平台框架Apache codova,希望有经验的大牛分享一下俩个平台的app的更新机制的区别和codova开发 app的更新机制实现. 解决方案 如果你都是上google play和appstore 那么你就是分别申请账号,然后上传新版本.他们会帮你推送更新. 解决方案二: 更新

Android NDK r8 Cygwin CDT 在window下开发环境搭建 安装配置与使用 详细图文讲解

android 最新 NDK r8 在window下开发环境搭建 安装配置与使用 详细图文讲解,完整实际配置过程记录(原创) 一直想搞NDK开发却一直给其他事情耽搁了,参考了些网上的资料今天终于把环境搭建起来了,把过程记录下来分享给大家. 内容目录: 1.默认基础环境 2.NDK下载与配置 3.安装Cygwin 4.用NDK编译 5.安装CDT插件 6.安装Sequoyah插件 7.JNI编译环境配置 画了一个思维导图让大家一目了然配置过程   -------------------------

Redesign Your App for iOS 7 之 页面布局【转】

前言 iOS7是目前iOS史上最颠覆的一次改版. 它的出现令人兴奋,因为它将会带我们进入一个全新的时代: 它的到来也让我们忧心,因为它颠覆了一切,包括我们过去做过的很多努力. 但是,相信大家乐意为这个全新时代做更多的努力,因为,它值得期待.   最近打算写一系列针对iOS7新特性的文章,今天就从最基本和简单的页面布局开始吧.     从头说起 当我看见iOS7那个半透明设计的navigationBar,已经有种不详的预感. 因为要透过navigationBar看到底下滚动的内容,那么底下的内容必

图片存储-hibernate mysql blob类型 图文存储怎么解决

问题描述 hibernate mysql blob类型 图文存储怎么解决 我想做一个文章存取得功能,即一片文章的内容有文字和图片,均存在实类Article中的content中,在Java是String类型,在mysql中是blob类型. jsp页面有一个form表(含有编辑器)是用来发表文章的,怎么从form表中,取得content的参数,然后转化成blob类型存进数据库,又怎么从数据库取出在转化成String在页面上显示呢???求大神指教怎么存取成功? 新手一枚,请大家多多包涵! 解决方案 是

图文讲解Java中实现quickSort快速排序算法的方法_java

相对冒泡排序.选择排序等算法而言,快速排序的具体算法原理及实现有一定的难度.为了更好地理解快速排序,我们仍然以举例说明的形式来详细描述快速排序的算法原理.在前面的排序算法中,我们以5名运动员的身高排序问题为例进行讲解,为了更好地体现快速排序的特点,这里我们再额外添加3名运动员.实例中的8名运动员及其身高信息详细如下(F.G.H为新增的运动员): A(181).B(169).C(187).D(172).E(163).F(191).G(189).H(182) 在前面的排序算法中,这些排序都是由教练主

iOS开发 全机型适配解决方法_IOS

最近做项目,对于IPhone 手机机型适配很是头疼,所以整理下网上资料,记录下来,也许能帮助到正看文章的你, 今天打算跟大家聊聊最近研究的全机型适配思路. 当前我们需要适配的iPhone机型有4s.5s.6s.6Plus四种机型.它们的尺寸分别是  iphone4s {320, 480}                           960*640  iphone5 5s {320, 568}                       1136*640  iphone6 6s   {37