ios7 兼容之前版本

转载 2015年11月19日 08:43:29

m

首先

1
2
3
4
5
6
7
8
9
//定义宏,判断ios7
#define IOS7 [[[UIDevice currentDevice]systemVersion] floatValue] >= 7.0
 
//添加代码
if (IOS7)
{
    self.edgesForExtendedLayout = UIRectEdgeNone;               //视图控制器,四条边不指定
    self.extendedLayoutIncludesOpaqueBars = NO;                 //不透明的操作栏<br>    self.modalPresentationCapturesStatusBarAppearance = NO;
}

  

#if __IPHONE_OS_VERSION_MAX_ALLOWED >= 70000
    if (IOS7)
    {
        self.edgesForExtendedLayout = UIRectEdgeNone;
        self.extendedLayoutIncludesOpaqueBars = NO;
        self.modalPresentationCapturesStatusBarAppearance = NO;
//        self.automaticallyAdjustsScrollViewInsets = NO;
//        self.navigationController.navigationBar.translucent = NO;
//        self.tabBarController.tabBar.translucent = NO;
    }
#endif

self.automaticallyAdjustsScrollViewInsets = NO;
看这个UIViewController的这个属性你就明白了,此属性默认为YES,这样UIViewController下如果只有一个UIScollView或者其子类,那么会自动留出空白,让scollview滚动经过各种bar下面时能隐约看到内容。但是每个UIViewController只能有唯一一个UIScollView或者其子类,如果超过一个,需要将此属性设置为NO,自己去控制留白以及坐标问题。

 

http://blog.csdn.net/mac_cm/article/details/9234451,这个里面有一些属性介绍

#define iPhone5 ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(640, 1136), [[UIScreen mainScreen] currentMode].size) : NO)

这个是判断iphone5 or 4 

 

注意,目前我做的适配

如果之前使用了nib文件,同时ui不是自己手写代码add上去的,这里需要在代码里控制每一个ui了(如果你也中枪,那就跟我一样慢慢改吧,以后写代码尽可能手动)

如果是代码里画的ui,那么问题不大,做出响应调整即可。

 

当然如果你不需要兼容ios5.0,这样可以完全使用autolayout,这样可以使你的工作量降至最低,如果有不同方法欢迎大家来讨论


相关文章推荐

iOS7与之前版本差异

谢谢这位大神http://my.oschina.net/vimfung/blog/159767 1、UITableViewCell变化     在之前的版本中UITableViewCell的bac...

iOS7或之前版本中 二维码的生成与扫描 开灯

1:搭建扫描环境:扫描框、扫描线、相册按钮等等。 其中扫描动画如下: //设置定时器 _timer = [NSTimer scheduledTimerWithTimeInterval:1.2 ta...
  • Akries
  • Akries
  • 2015年04月13日 11:26
  • 785

怎样在xcode5中使用低版本sdk,解决兼容ios7ui问题

问题 令人头疼的是,xcode每次升级都会使用最新版本的sdk,而且只有最新版本的sdk,对之前老版本的sdk都没有默认安装,这搞的最近我很头疼, 最近我升级到Xcode5.0版本,编译后运行后,在...

通俗易懂,手把手教会你android 6.0后(兼容6.0之前版本)申请危险权限的方法

android6.0发布后,应用内部申请权限的方法不再是统一的在AndroidManiFest.xml文件中配置,具体原因请看...

windows 7版本之前的区别

  • bayaci
  • bayaci
  • 2011年06月26日 15:01
  • 418

IOS6屏幕旋转详解(自动旋转、手动旋转、兼容IOS6之前系统) 【转】

概述: 在iOS6之前的版本中,通常使用 shouldAutorotateToInterfaceOrientation 来单独控制某个UIViewController的方向,需要哪个viewCont...

IOS6屏幕旋转详解(自动旋转、手动旋转、兼容IOS6之前系统) .

转自:http://blog.csdn.net/cococoolwhj/article/details/8208991 概述: 在iOS6之前的版本中,通常使用 shouldAutorot...

IOS6屏幕旋转详解(自动旋转、手动旋转、兼容IOS6之前系统)

概述: 在iOS6之前的版本中,通常使用 shouldAutorotateToInterfaceOrientation 来单独控制某个UIViewController的方向,需要哪个viewContr...
  • nyh1006
  • nyh1006
  • 2013年11月11日 18:11
  • 832

代理传值iOS9与之前版本的区别——提前释放

这几天,项目第一阶段进入收尾和测试阶段了,之前测试时,所有的设备都是iOS9的,这次用iOS8测试时,自定义封装的弹出框出现了响应代理事件和代理传值时崩溃的情况,用iOS7也是这样。首先,我检查了代码...

ios 对于AFNetworking3.0之前版本的Get、Post请求的封装(直接调用即可)

对于AFNetworking的认识我想大家都不陌生,AFNetworking在3.0版本中删除了基于 NSURLConnection API的所有支持。如果项目以前使用过这些API,那么我们需要升级到...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:ios7 兼容之前版本
举报原因:
原因补充:

(最多只允许输入30个字)