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

IOS版本和IPHONE5适配总结

时间:2014-07-23 11:54:16      阅读:301      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   color   os   io   

今天花了一天的时间对IOS6和IPHONE5进行适配 [由于自己用的机器是IPHONE5,所以没出什么问题,但是在IPHONE4上就出问题了,都是IOS7版本,还有一台IPOD是IOS6版本,也出问题~ 哎,一开始没注意适配,现在得花这精力去修改~  特总结一下,防止以后犯错误,提高工作效率,加油!]

 

由于习惯问题,都在视图控制器下的viewDidLoad去创建自定义的UI元素,因为IOS版本问题,所以self.view.frame也会不同,如果要实现相同的UI布局,用代码进行测试,发现以下4种情况

3.5寸IPHONE

bubuko.com,布布扣

bubuko.com,布布扣

 

IPHONE5,IPHONE5S设备

bubuko.com,布布扣

bubuko.com,布布扣

结论:针对有导航栏的视图控制器,IOS6系统下self.view下的subviews的Origin.y是从导航栏底部开始计算的,高度是整个屏幕高度减去20后的值为参照,IOS7系统下是从0开始计算的,高度是整个屏幕高度为参照!

 

适配方案探讨:

1.在每个视图控制器的viewDidLoad去判断IOS版本和IPHONE尺寸,创建不同的frame,去设置每个UI元素 [当前由于时间问题,采取这种方案,发现略显繁琐,不易维护]

2.在每个视图控制器下加入以下代码:

bubuko.com,布布扣
1 if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7) {
2             self.edgesForExtendedLayout = UIRectEdgeNone;
3         }
View Code

这样不管在IOS6还是IOS7下,元素的Origin.y都是一样的,不用再去分别设置了

然后只要控制每个元素的高度就行了,如下图: 

bubuko.com,布布扣

 

3.在第二种方法前提下,在每个视图控制器下重写loadView方法

bubuko.com,布布扣
1 -(void) loadView
2 {
3     [super loadView];
4     CGRect rect=  [[UIScreen mainScreen] applicationFrame];
5     UIView* view=[[UIView alloc] initWithFrame:rect];
6     view.backgroundColor=[UIColor purpleColor];//根据项目需求,修改你自己的背景颜色
7     self.view=view;
8     [view release];
9 }
View Code

这样第二种方法里的高度设置都可以设置一样的,不用分别设置了~~

高度以屏幕高度减去20后的值为参照

 

好了,目前总结就是这样了,没看网上的描述,全是自己推敲出来的,或许会有更好的解决方案,欢迎大家提出! 本来才进入IOS开发阵营不久,之前做WP和WIN8的开发,也欢迎小伙伴们交流下~ 始终有一颗微软粉的心啊 !

IOS版本和IPHONE5适配总结,布布扣,bubuko.com

IOS版本和IPHONE5适配总结

标签:style   blog   http   color   os   io   

原文地址:http://www.cnblogs.com/YueHeiZS/p/3861794.html

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