http://blog.csdn.net/toss156/article/details/11843873#comments

(1)如果应用程序始终隐藏 status bar 那么恭喜呢,你在UI上需要的改动很少很少。

(2)如果应用程序显示status bar,可以讲status bar设置成黑色不透明 ,然后在UIViewController 中加入下面的判断,

  1. #define IOS7_OR_LATER   ( [[[UIDevice currentDevice] systemVersion] compare:@"7.0"] != NSOrderedAscending )
  2. #if __IPHONE_OS_VERSION_MAX_ALLOWED >= 70000
  3. if ( IOS7_OR_LATER )
  4. {
  5. self.edgesForExtendedLayout = UIRectEdgeNone;
  6. self.extendedLayoutIncludesOpaqueBars = NO;
  7. self.modalPresentationCapturesStatusBarAppearance = NO;
  8. self.navigationController.navigationBar.translucent = NO;
               self.tabBarController.tabBar.translucent = NO;
  9. }
  10. #endif  // #if __IPHONE_OS_VERSION_MAX_ALLOWED >= 70000

1.在appdeletage里面 添加如下代码:      if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7) {         [application setStatusBarStyle:UIStatusBarStyleLightContent];         self.window.clipsToBounds =YES;         self.window.frame =  CGRectMake(0,50,self.window.frame.size.width,self.window.frame.size.height-20);      }   2.在info.plist文件里面 属性:View controller-based status bar appearance  值设为NO 接着运行程序,可以看到StatusBar了

(3)如果勾选了Hide during application lauch 的话,在IOS7 的设备上,是没有问题的,

启动完以后status bar 会重新出现的,但是在IOS7 一下的设备,需要在launch didfinish 里面把status bar 显示出来。

(4)可以通过设置view的背景颜色来改变 status bar 的颜色来搭配你的nav 条。

(5)  有些地方肯能要对版本进行判断,分别做不同的处理。

(6)  可以用旧版的sdk来编译,这样在真机上还是和原来一样的效果。具体的方法可以参考:http://github.kimziv.com/blog/2013/09/22/how-to-use-older-base-sdks-in-xcode5/

使用视图控制器(View Controller)
在iOS 7中,视图控制器都是全屏的。iOS 7视图控制器的外观给人传达了更细腻的控制感。特别是新的全屏外观让你可以指定视图的每个边缘的布局。
 
视图控制器接口wantsFullScreenLayout已作废。如果你像以前那样地指定wantsFullScreenLayout = NO,iOS 7中视图控制器会在将其内容显示到一个意外的屏幕位置。
 
UIViewController提供了如下属性来调整视图控制器的外观:
1.edgesForExtendedLayout:这个属性属于UIExtendedEdge类型,它可以单独指定矩形的四条边,也可以单独指定、指定全部、全部不指定。
 
使用edgesForExtendedLayout指定视图的哪条边需要扩展,不用理会操作栏的透明度。这个属性的默认值是UIRectEdgeAll。
 
2.extendedLayoutIncludesOpaqueBars:
如果你使用了不透明的操作栏,设置edgesForExtendedLayout的时候也请将 extendedLayoutIncludesOpaqueBars的值设置为No(默认值是YES)。
 
3.automaticallyAdjustsScrollViewInsets:如果你不想让scroll view的内容自动调整,将这个属性设为NO(默认值YES)。
 
iOS 7中,视图控制器支持自定义视图之间的过场动画。另外,你可以使用iOS 7的新API来支持过场动画过程中的用户交互。更多信息请参考下面两个文档:《UIViewController过场动画协议参考》和《UIViewController过场交互协议参考》。
 
iOS 7允许视图控制器在app运行过程中改变系统状态栏的样式。开启这个功能,请在Info.plist文件中添加键 UIViewControllerBasedStatusBarAppearance,并将值设为YES。动态改变系统状态栏的一个好方法是重写 preferredStatusBarStyle方法,用一个动画模块来更新状态栏外观,并调用 setNeedsStatusBarAppearanceUpdate方 法。........................................
 
 
 
状态栏可以设置成半透明, 这是众所周知的, 用UINavigationController,在页面切换时, 如果你的子viewController的view是全屏的(480*320) 就会出现错位, 表现是所以的子view会向下偏移了 20像素 

[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleBlackOpaque];

self.navigationController.navigationBar.translucent = YES;

[self.navigationController.view setNeedsLayout];

self.wantsFullScreenLayout = YES;

 

[ios2] ios7UI适配 【转】的更多相关文章

  1. iPad横竖屏代码适配

    你可能非常了解用不同的方式去适配不同尺寸的iPhone屏幕,在适配iPhone屏幕时你需要考虑的只是屏幕大小变化带来的UI元素间隔的变化,但是在iPad上主要针对的是横竖屏下完全不同的UI元素的布局, ...

  2. iOS---iOS10适配iOS当前所有系统的远程推送

    一.iOS推送通知简介 众所周知苹果的推送通知从iOS3开始出现, 每一年都会更新一些新的用法. 譬如iOS7出现的Silent remote notifications(远程静默推送), iOS8出 ...

  3. iOS的ATS配置 - 2017年前ATS规定的适配

    苹果规定 从2017年1月1日起,新提交的 app 不允许使用NSAllowsArbitraryLoads来绕过ATS(全称:App Transport Security)的限制. 以前为了能兼容ht ...

  4. Android权限管理之RxPermission解决Android 6.0 适配问题

    前言: 上篇重点学习了Android 6.0的运行时权限,今天还是围绕着Android 6.0权限适配来总结学习,这里主要介绍一下我们公司解决Android 6.0权限适配的方案:RxJava+RxP ...

  5. fir.im Weekly - 关于 iOS10 适配、开发、推送的一切

    "小程序"来了,微信变成名副其实的 Web OS,新一轮的Web App 与Native App争论四起.程序员对新技术永远保持灵敏的嗅觉和旺盛的好奇心,@李锦发整理了微信小程序资 ...

  6. iOS开发 适配iOS10

    2016年9月7日,苹果发布iOS 10.2016年9月14日,全新的操作系统iOS 10将正式上线. 作为开发者,如何适配iOS10呢? 1.Notification(通知) 自从Notificat ...

  7. 3D游戏中的画质与效率适配

      哪里来的需求? 众所周知,由于不同的设备配置不同.导致其CPU和GPU处理能力有高有低.同样的游戏想要在所有设备上运行流畅且画面精美,是不可能的.这就需要我们针对不同的设备能力进行画质调节,以保证 ...

  8. iOS 4s-6Plus屏幕自动适配及颜色转换为十六进制

    iOS各种屏幕自动适配及颜色转换为十六进制 ★★★XLJMatchScreen自动适配屏幕★★★ 支持pod导入 pod 'XLJScreenMatching', '~> 1.0.3' 如果发现 ...

  9. Android指纹识别深入浅出分析到实战(6.0以下系统适配方案)

    指纹识别这个名词听起来并不陌生,但是实际开发过程中用得并不多.Google从Android6.0(api23)开始才提供标准指纹识别支持,并对外提供指纹识别相关的接口.本文除了能适配6.0及以上系统, ...

随机推荐

  1. 快速构建Windows 8风格应用37-常见发布注意事项

    原文:快速构建Windows 8风格应用37-常见发布注意事项 引言 通常我们发布Windows Store应用失败后,会返回一些错误需要我们去修改.我之前在给学生做培训的时候发现大部分同学应用被打回 ...

  2. Xamarin移动跨平台解决方案是如何工作

    Xamarin移动跨平台解决方案是如何工作的? 概述 上一篇 C#移动跨平台开发(1)环境准备发布之后不久,无独有偶,微软宣布了开放.NET框架源代码并且会为Windows.Mac和Linux开发一个 ...

  3. AjaxPro使用说明文档

    ajaxpro下载地址 AjaxPro使用说明     1 目录     2 修改历史纪录     3 1.什么是Ajax     4 2.为什么使用Ajax     4 3.Ajax应用场景     ...

  4. vs 中一些快捷键

    本文用于记录一些vs中快捷键,以便提高编程效率. 首先小坦克的博客介绍的十几个快捷键挺不错的,还有动画演示.可以跳过去看看. 自己也记录一些自己想用的吧: 1. ctr + W + E 出现error ...

  5. Liunx readlink命令

    readlink命令 分类: Shell 2013-07-13 16:41 417人阅读 评论(0) 收藏 举报 readlink是linux系统中一个常用工具,主要用来找出符号链接所指向的位置. 在 ...

  6. 十款最佳Node.js MVC框架

    十款最佳Node.js MVC框架摘要:Node.js是JavaScript中最为流行的框架之一,易于创建可扩展的Web应用.本文分享十款最佳的JavaScript框架. Node.js是JavaSc ...

  7. .NET MVC4 实训记录之六(利用ModelMetadata实现资源的自主访问)

    上一篇我们已经实现自定义资源文件的访问,该篇我们使用它配合ModelMetadata实现资源文件的自主访问.这样做是为了我们能更简单的用MVC原生的方式使用资源文件.由于我的文章旨在记录MVC项目的实 ...

  8. Qt的SQL操作,DELETE,SELECT

    #include <QObject> #include <QSqlDatabase> #include <QSqlError> #include <QSqlQ ...

  9. MVC ValidationAttribute 服务器端自定义验证

    MVC ValidationAttribute 服务器端自定义验证 客户端验证 上文只说了客户端的自定义验证,这样对于用户的输入还是不够可靠,用户完全可以绕过我们定义的客户端验证.所以仅有客户端的验证 ...

  10. SZU:D89 The Settlers of Catan

    Judge Info Memory Limit: 65536KB Case Time Limit: 3000MS Time Limit: 3000MS Judger: Number Only Judg ...