IOS系列——适配问题

代码写的话 首先要判断 屏幕尺寸和系统版本
#define iPhone5 ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(640, 1136), [[UIScreen mainScreen] currentMode].size) : NO)
//判断是都是IOS7系统
#define isIOS7 [[UIDevice currentDevice].systemVersion doubleValue] >= 7
//获取当前设备的尺寸
#define SELFUISCREENHEIGTH [UIScreen mainScreen].bounds.size.height
#define SELFUISCREENWIDTH  [UIScreen mainScreen].bounds.size.width




用两个xib文件来适配

在原有的项目中  新建一个xib 我们可以把它命名为 ViewController_iphone5.xib 并且与相应的类做关联。具体方法为

1、选中xib 然后看xib里面  左边的透明装黄色方格  File"s  owner  然后选择 在输入框中选择与之关联的类

2、


这样就使用这个xib


代码使用两个xib文件 

if (iPhone5) {
        self.viewController = [[[ViewController alloc] initWithNibName:@"ViewController_iphone5" bundle:nil] autorelease];
    }else{
        self.viewController = [[[ViewController alloc] initWithNibName:@"ViewController_iphone" bundle:nil] autorelease];
    }

我们再来说说 xib里面的很多属性:

比如说新建一个xib 里面给的尺寸是3.5 或者 4.0  而且是不可变的,这个应该怎么办呢 在 右边框里面的


  1. 这里面的size属性就可以自由变换你需要的尺寸
  2. orientation是设置view横向显示还是竖向显示
  3. status是上面20像素的那个状态栏的选项
  4. top bar 如果页面需要导航条,可以在这里面选择,然后做适配
  5. Bottom bar 是如果下面也分页栏 可以在这里选择在做适配


我们在来说一下 IOS7 和之前的系统坐标的区别 ,自从ios7出来以后,各种适配问题都来了,

ios7系统的坐标是从屏幕的左上角的,也就是说状态栏也在坐标之内,即使说页面添加了导航条  坐标也还是从最左上角开始

IOS7之前的系统坐标算法是不一样的,他的坐标是从状态栏下面开始的,如果说页面上也加了导航条,那么坐标就是从导航条下面开始算的

我们来看这张图

右边的xib是考虑到导航条的宽度来设置的按钮位置,但是跑出来的效果确实左边的。但是如果在ios7系统里面跑程序就不会有这个情况。

为什么会出现这个问题呢? 

那是因为导航条直接把这个xib向下推移了导航条的高度。这样就会有问题出现了:我们在xib最下面放一个按钮,在ios7之前的系统版本运行出来的话,就看不到这个按钮所以在做布局的时候,要考虑到这个问题。

一般来讲,如果是这样的话,我们在xib里面做的时候是选择把xib下面的空余出来来达到铺满全屏的效果,但是在ios7里面空余出来运行出来的就是空余出来的,所以我们需要做一下调整,具体方法可以参照http://blog.csdn.net/u011332675/article/details/17584237

不过在这里要说的一点就是 增量有些时候你是看不到的,这是为什么呢  在第一栏的下面 有一个  Use Autolayout 选项,要把勾 去掉 还有一点需要提醒的是:要选择页面里面的元素来做增量,直接选 中view是没用的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值