iphone6来了,我该做点什么(兼容iphone6的方法)

北京时间2014年9月10日凌晨1点,苹果公司正式发布其新一代产品 iPhone6,相信做webapp开发的同学对它是充满了好奇和等待,也担心它带来各种坑爹,高清的分辨率,升级的retina显示屏,我们该如何做好适配呢?

相比iPhone5,iPhone6拥有更高分辨率的retina HD display,而iPhone6 plus的像素密度达到了401ppi,相比原来的326ppi,提升了25%,显示画面细节更丰富。

iPhone6 Plus设备高为736pt,宽为414pt,缩放比例为@3X,设备像素比(DevicePixelRatio,缩写DPR)为3.0,分辨率为2208*1242,在这个分辨率下渲染后,图像等比降低分辨率至1920*1080,下图来自paintcodeapp官网,解析iphone6 6plus分辨率:

iPhone6 plus的高清分辨率(1920*1080)让人感到担忧,而事实上这样的设备市场上早就有,如三星的Galaxy S4(分辨率:1920x1080;设备像素比:3.0),只是用户数并不庞大,webpp开发对它的适配也是从原始的iphone 4设计稿960*640做起,保证内容的正常展现。iPhone6 plus的出现是对它的进一步推动,而对视觉和前端无疑是一项新的挑战。

那么,我们是否要专门为iphone 6 plus 1920*1080的页面单独做一套适配呢?

让我们先看腾讯云分析2014年第二季度移动行业数据报告,该数据覆盖的设备超过15亿,是非常具有参考价值的,先了解android屏幕分辨率排名:

可以看出大屏手机是未来趋势,虽然这样,但减去大屏手机所占的比例,其它android手机所占比例为61.5%,也就是说目前窄屏手机占了绝大多数,再看高端的iphone机器比例:

iPhone 4 依然拥有最多的用户数,不容忽视它的价值。虽然大屏手机是趋势,但我们的视觉稿应该是适配大部分的设备,目前数据上看,960*640或1136*640依然是我们设计的规格,从最多用户数的设备进行设计,大屏手机正常展现,向前兼容,向后看齐,可以解决大部分问题。

那么,这对视觉稿的要求比较高,如果设计一套页面,在所有ios和android设备都展现良好,是不需要对iPhone6做适配的;如果展现效果一般(例如大屏手机下内容太小),需要对页面再进一步适配,可以理解为我们常说的响应式设计。

这里笔者在近期的资料想出一个方法,利用CSS媒体查询做兼容,仅供参考,是否存在问题还要等待iPhone 6的机器到手再做测试下,到时会更新文章反馈大家(内容更新于20140928,修改了设备像素比为3.0)~

@media (device-width:375px) and (-webkit-min-device-pixel-ratio:2){/* 兼容iphone 6 */
.class{}
}
@media (device-width:414px) and (-webkit-min-device-pixel-ratio:3.0){/* 兼容iphone6 plus */
.class{}
}

适配这事情,还是要结合具体的项目,看老板的脸色,看用户的心思,总之,在开发的角度上看,提前做好准备,保证产品的质量和体验,搞不好老板就给你加薪~

有关retina显示屏的原理,之前写过一篇文章《高清显示屏原理及设计方案》,推荐大家阅读。

有关iPhone4和iPhone5的兼容,之前写过一篇文章《兼容iPhone4和iPhone5的方法》。

参考资料:

iphone-6/specs

retina HD display

Confirmed iPhone 6 and 6 Plus viewport device-width

iPhone 6 and 6 Plus Responsive Breakpoints

iPhone 6 Screens Demystified

iPhone 6 Screens Demystified(中文图解)

Device pixel density tests

时间: 2024-10-14 00:46:14

iphone6来了,我该做点什么(兼容iphone6的方法)的相关文章

StoryBoard和代码结合 按比例快速兼容iPhone6/6 Plus教程

现在由于苹果公司出了6和6Plus,让写苹果程序的哥们为了做兼容很头疼.用StoryBoard固然方便,但是后期做兼容要花费太多的时间和精力.使用AutoLayout虽然会在不同尺寸的屏幕下自动布局,但是很多东西还是要自己手动修改,而且使用AutoLayout的话有一个弊病,就是无法通过代码来修改StoryBoard上控件的尺寸和位置.使用纯代码搭建界面又会觉得不够直观,要花时间调整布局,虽然方便后期做调整兼容性,但是影响开发效率.当然个人觉得还是代码和StoryBoard结合的方式比较方便.先

StoryBoard和代码结合 按比例快速兼容iPhone6/6 Plus简单教程

文章中的方法有很大的局限性,请谨慎使用! 现在由于苹果公司出了6和6Plus,让写苹果程序的哥们为了做兼容很头疼.用StoryBoard固然方便,但是后期做兼容要花费太多的时间和精力.使用AutoLayout虽然会在不同尺寸的屏幕下自动布局,但是很多东西还是要自己手动修改,而且使用AutoLayout的话有一个弊病,就是无法通过代码来修改StoryBoard上控件的尺寸和位置.使用纯代码搭建界面又会觉得不够直观,要花时间调整布局,虽然方便后期做调整兼容性,但是影响开发效率.当然个人觉得还是代码和

很多人不知道做百度知道百分百成功的方法

做百度知道百分百成功的方法 我们做网络营销和网站推广的朋友估计很多人都研究过各大问答平台,但是随着百度的不断更新真的这么好做吗?答案是否定的,现在不想以前了,以前百度机制不严,做自问自答基本不会被删,现在不一样了,我们如果还想以前一样一个号提问一个账号回答基本都会被秒删,那么有什么好的办法才能"破解魔咒"呢?汕尾SEO来教你~ 网络营销 下面这5种方法,也是很多做网络推广手经常用的手段: 1.小号提问大号回答 2.用手机提问,我们这里用手机下载百度知道,登录大号,找到小号的问题进行回复

webview中的页面兼容iphone6和6+

其实写这篇文章的本不该是我,而应该是开发ios的小伙伴,但作为一个前端,我想我还是有必要做一下记录的! 首先我想说下在iphone6或者6+中webview内嵌套的页面宽度已经不在是320px,而是375px和414px,也正因为如此,所以才产生了兼容问题, 也就是页面中的字体模糊,毫无疑问,解决方案是已经有了~ 问题: 在iphone6和6+上,webview中的页面字体模糊 解决: 开发ios的小伙伴们需要启用“高分辨率模式”,启用方法有两个: 1.添加大屏的LaunchImage:在Ima

HTML5工具做屏幕自适应的两种方法

近一两年,HTML5在中国很火,也出了不少HTML5工具和模板.别的先不说,对于不同的H5工具,解决屏幕自适应问题的区别是什么? 简单来说,感应式设计是当用不同设备访问时,能够根据设备的宽度和高度对设备进行动态的适配.例如,用iPhone4.iPhone5.iPhone6.PC.iPad访问同一个H5网页,都能打开一个适合该设备的一个HTML5页面,不留白边,不变形. 由于设备分辨率和长宽比都不同,如果设计一次就能适应所有的屏幕(包括移动端和PC端),几乎不可能.原因有三: 1. 如果等比例缩放

在Springmvc的工程中对DAO做切面来评估DAO的方法耗时时间

一.Spring的mvc配置以及使用二.Spring的aop切面配置以及使用三.Spring的aop切面在spring-mvc中失效的问题四.通过aop切面来评估所有的dao在执行过程中的耗时 一.Spring的mvc配置以及使用  a.在pom.xml中引入spring的jar包.  b.在web.xml中配置,初始化dispatcherServlet,加载WebApplicationContext 容器. <!-- 加载Springmvc得拦截器,初始化WebApplicationConte

快速做流程图的三种小方法

在我们的日常办公中,我们都要学会熟练使用各种办公软件,才能提高我们的工作效率,下面将为大家分享三种绘制流程图的方法,非常简单哦! 一.在Word中制作流程图 1.首先,打开Word文档,在上方栏目中点击"形状--新建绘图画布"这时一个画布将穿线在页面中间. 2.点击"插入--形状"会出现流程图,选择你需要的图形,点击鼠标左键,就可以将需要的图形进行拖动了. 3.选择"插入--形状"在出现的工具中选择连接符,点击选中连接符,鼠标会变成十字形,移动到

实用的viewpager 做一个引导动画(强调方法没有美化)

思路: 1.利用viewpager控件自带的水平滚动特性,将想要展现的内容用xml布局文件一张张写出来 2.用一个linearlayout包裹张数个imageview,src是一个小圆点,另外准备一个大圆点,给imageview定义一个索引值 3.首先进入动画时第一个原点是大的,进入第二张是将第一张的还原,第二章变大,这里我是用style样式setenabled方法来实现的 这个页面在应用还在加载时调用,负责判断是去引导页面还是直接去主页,如果首次进入或重新安装了此应用都将去往引导页面 <?xm

DoodleView做一个画板和Touche的方法

类和文件 其中有两个功能没有实现 AppDelegate.m #import "AppDelegate.h" #import "ViewController.h" #import "DoodleView.h" @implementation AppDelegate - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary