简单适配3.5寸,4寸iPhone屏幕的方法
2014-04-10 19:13
363 查看
首先,Xcode4.5以后多了autoLayout这个功能,简单地说就是以前的项目的元素布局:绝对定位,可以被这种相对位置替代,不用设置具体元素的frame,可以设置元素距离父视图,或者距离另外一个子元素有多远的相对距离,我相信这个方法应该是一劳永逸的正解,也是苹果为什么4.5多这个新功能的初衷。
所以我新创建了一个项目想试验下autoLayout的作用,后来发现各种问题,最常见的原因是相对位置会产生冲突,导致设定相对位置不成功。所以现在采用了一些折中的简单方法,以后肯定还是要学习autoLayout的,目前来看,如果不设置Default-568h@2x这个图片,那么原来的3.5寸屏幕适配的应用显示在4寸屏幕当中会产生黑边儿。下面的方法是建立在设置Default-568h@2x图片的前提下的:
首先定义判断语句,用来判断是不是iPhone5
#define iPhone5 ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(640, 1136), [[UIScreen mainScreen] currentMode].size) : NO)
然后就是加载不同的Xib
if (iPhone5) {
centerPlayControl=[[CenterPlayViewController alloc] initWithNibName:@”CenterPlayViewController4inch” bundle:nil];
[self addChildViewController:centerPlayControl];
}else{
centerPlayControl=[[CenterPlayViewController alloc] initWithNibName:@”CenterPlayViewController” bundle:nil];
[self addChildViewController:centerPlayControl];
}
[[UIScreen mainScreen] currentMode].size.height*0.5
取出来的值是1136所以要除以一半儿处理为568
总结下来,一劳永逸的方法还是AutoLayout,以后研究
所以我新创建了一个项目想试验下autoLayout的作用,后来发现各种问题,最常见的原因是相对位置会产生冲突,导致设定相对位置不成功。所以现在采用了一些折中的简单方法,以后肯定还是要学习autoLayout的,目前来看,如果不设置Default-568h@2x这个图片,那么原来的3.5寸屏幕适配的应用显示在4寸屏幕当中会产生黑边儿。下面的方法是建立在设置Default-568h@2x图片的前提下的:
1.视图自适应方法
一些视图,比如UITableView和UIScrollView,会自适应的增长高度,好在宽度不用变,所以一般来说需要细节调整就可以了,比如tableView需要考虑的是背景图片尺寸会不会在4寸屏幕里不够,阴影长度是否不足等等。2.加载两套Xib方法
以前没做过iPad和iPhone通用程序,但是据说之前的程序就是这么实现的,加载Xib的时候进行判断屏幕的尺寸,然后选择适合屏幕尺寸的视图文件加载,这么做的缺点可能就是使应用大了一些。举个例子:首先定义判断语句,用来判断是不是iPhone5
#define iPhone5 ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(640, 1136), [[UIScreen mainScreen] currentMode].size) : NO)
然后就是加载不同的Xib
if (iPhone5) {
centerPlayControl=[[CenterPlayViewController alloc] initWithNibName:@”CenterPlayViewController4inch” bundle:nil];
[self addChildViewController:centerPlayControl];
}else{
centerPlayControl=[[CenterPlayViewController alloc] initWithNibName:@”CenterPlayViewController” bundle:nil];
[self addChildViewController:centerPlayControl];
}
3.小范围微调
上述简单解决方案一般都是利用Xib文件,对于一些通过调整Frame来进行动画的视图就需要一些精细的调整,比如一个视图,平时要在屏幕的下方,不可见,点击按钮会让其向上浮现,以前只要写两个frame就可以了,origin.y无非是需要的高度或者480,现在高度480就需要换成实际高度,获取高度可以用这个方法:[[UIScreen mainScreen] currentMode].size.height*0.5
取出来的值是1136所以要除以一半儿处理为568
总结下来,一劳永逸的方法还是AutoLayout,以后研究
相关文章推荐
- IOS屏幕3.5寸和4寸屏幕适配 之 适配ios6转屏
- android:使用SurfaceView游戏开发简单屏幕适配方法
- 关于屏幕适配的简单方法,动态改变view占用屏幕的大小
- 详解React Native 屏幕适配(炒鸡简单的方法)
- ios开发适配3.5寸和4寸屏幕
- Android最简单的屏幕适配方法
- 获取移动端设备的屏幕信息(简单适配iphoneX)
- 关于Unity3D屏幕适配的简单处理方法
- iphone屏幕适配规则及启动图设置方法
- [超级懒人最简单法]iPhone 6 plus 适配切图方法分享(转载文章)
- 同时适配3.5寸和4寸屏幕
- ios(iphone/ipad)一个简单的用代码判断当前设备的方法
- iOS iPhone屏幕尺寸、分辨率及适配
- android屏幕适配方法
- iPhone屏幕尺寸、分辨率及适配
- 如何用一个IPad屏幕适配各尺寸的IPhone
- iOS:界面适配(一)--Universal通用程序 iPhone、iPad适配(方法)
- 纯代码 自动屏幕适配iPhone 按钮
- iPhone 5以上适配的方法
- iPhone屏幕适配,历史及现状