IOS版本和IPHONE5适配总结

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

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

3.5寸IPHONE

IPHONE5,IPHONE5S设备

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

适配方案探讨:

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

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

1 if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7) {
2             self.edgesForExtendedLayout = UIRectEdgeNone;
3         }

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

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

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

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 }

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

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

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

IOS版本和IPHONE5适配总结

时间: 2024-11-05 11:00:47

IOS版本和IPHONE5适配总结的相关文章

不同iOS版本做代码适配__IPHONE_OS_VERSION_MAX_ALLOWED 和 __IPHONE_8_0等专业术语

目前开发只想最低版本支持iOS8了,iOS8以前的就不管了,然后现在iOS9和iOS10出来以后,有些新的API,也有些弃用的API,为了兼容,有时候代码里面需要编写判断不同iOS版本,或者只允许指定的iOS版本才可以编译或者执行. 需要用到以下方式,以下方式只针对OC(Swift的写法暂时还不清楚,等需要的时候在补充): 示例: //ios8.0以后用此方法替代willRotateToInterfaceOrientation:duration:这个方法 #if __IPHONE_OS_VERS

iOS多版本多设备适配的问题

好吧,能找到这文章的,一般是接到了如下需求:  我是从raywenderlich抽了点内容出来做日记,另外,本文说的不是布局的适配,而是因为ios的升级带来的各版本代码上的不兼容. Deployment Target vs. Base SDK 总的来说,Base SDK表示你愿意支持的最高版本,位于你要设置的Target的属性页的Build Settings > Architectures,一般就选择Latest iOS即可,比如我写这篇日志的时候已经是8.0了 而Deployment Targ

iOS WKWebview 网页开发适配指南

iOS WKWebview 网页开发适配指南 微信iOS客户端将于2017年3月1日前逐步升级为WKWebview内核,需要网页开发者提前做好网站的兼容检查和适配.如有问题,可参考文末联系方式,向我们咨询. 背景 WKWebView 是苹果在iOS 8中引入的新组件,目的是提供一个现代的支持最新Webkit功能的网页浏览控件,摆脱过去 UIWebView的老.旧.笨,特别是内存占用量巨大的问题.它使用与Safari中一样的Nitro JavaScript引擎,大大提高了页面js执行速度. 切换方

IOS 6和 IOS7适配的一些问题

由于在做一个ios的通用设计平台,那么客户端解析的时候就涉及到一些ios不同版本,不同分辨率的适配问题 首先碰到的就是navigation bar中的item的背景色的问题 在ios7中设置settintcolor背景是透明的,图标和字默认是白色的,效果不错,但是在ios 6是,背景色也被设置成了白色,还加了边框,难看了,那怎么办呢,目前还正在摸索中啊 第二个问题就是色彩的透明度的问题,比较奇怪,在设置tableview的cell的背景色的时候,初始时是一样的,点着点着就不一致了,在ios 6和

ios版本与xcode版本

iOS版本 iPhone版本 Xcode版本 其他 2003年 Xcode1.0 2005年4月29日 Xcode2.0 2007年1月9日 iPhone OS(iOS1): 虚拟键盘.谷歌地图 第一代iPhone:3.5英寸,触屏 谷歌研发安卓 2007年6月29日 iPhone2G 2007年10月26日 Xcode3.0 2008年7月11日 iOS2: 同步服务.云计算电子邮件.AppStore面世.GPS导航 iPhone 3G:支持3G.AppStore 同年,首款安卓手机T-Mob

CiscoASA防火墙升级IOS版本需注意的问题

引用Cisco官方的公告: 在Internet密钥交换(IKE)1版本的漏洞(V1)和IKE协议版本2(v2)Cisco ASA软件代码可能允许未经身份验证的远程攻击者造成的影响重装系统或远程执行代码. 该漏洞是由于受影响的代码区缓冲区溢出.攻击者可以通过发送特制的UDP数据包来利用此漏洞影响的系统.一个漏洞可能允许攻击者执行任意代码,获得系统的完全控制或导致重装系统的影响. 注意:只有流量定向到受影响的系统可以用来利用此漏洞.这个漏洞影响配置防火墙模式只在单个或多个上下文模式系统.此漏洞可以被

Unity3D 实现简单的语音聊天 [iOS版本]

现在很多手机游戏中的聊天系统都加入语音聊天的功能,相比于传统的文字聊天,语音聊天在MMORPG中显得尤为重要,毕竟直接口头交流总比你码字快得多了,也更直观些. 实现语音聊天的方法很多,U3D中有不少第三方的插件,提供了很多功能强大的语音功能,具体有哪些我就不一一举例了(其实我都没用过- -!),本文想从一个原生开发的角度去实现一个简单的语音聊天功能. 语音聊天大概流程如图: 上图中可以看到,客户端录制语音数据,并进行编码转换,数据压缩,然后把语音数据发送到语音服务器,语音服务器进行派发功能(语音

iOS版本、iPhone版本、Xcode版本比对

iOS版本 iPhone版本 Xcode版本 其他 2003年 Xcode1.0 2005年4月29日 Xcode2.0 2007年1月9日 iPhone OS(iOS1): 虚拟键盘.谷歌地图 第一代iPhone:3.5英寸,触屏 谷歌研发安卓 2007年6月29日 iPhone2G 2007年10月26日 Xcode3.0 2008年7月11日 iOS2: 同步服务.云计算电子邮件.AppStore面世.GPS导航 iPhone 3G:支持3G.AppStore 同年,首款安卓手机T-Mob

IOS版本被拒的经历

IOS版本被拒的经历: 1,登陆方式依赖外部平台 因为我们的APP是只用微博登陆,想做成类似meerkat类型的,也能各种消息都同步微博. 结果当然行不通,这个确实是不听好人言,网上多个人都说过这个问题了,早就该引以为戒! 后加入手机号登陆,问题搞定. 2,放在app store中的广告图片有手机画面中,状态栏是android的 这个我们太不小心了,后修改图片. 3,用户排行榜中,列举所有用户,并且在UITableViewCell中例举了用户名.头像.粉丝数.关注数.人气量,苹果认为粉丝数.关注