码迷,mamicode.com
首页 > 移动开发 > 详细

ios7 兼容之前版本

时间:2015-07-06 09:57:56      阅读:139      评论:0      收藏:0      [点我收藏+]

标签:

1,首先

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://www.cnblogs.com/cynthia116/p/4623499.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!