一个IOS APP电源适配器iPhone6和6Plus 在技术上很困难吗

祝给予赞赏的伙伴,2017年发大财!|赞赏
收藏已收藏 | 14赞 | 15
分享到微信扫码分享到微信
互联网行业资深屌丝。
318 篇作品
241 万阅读总量
热门问题12345678910Pages: 1/2
主题 : 关于 iPhone6 Plus 适配的切图问题[已解决]
级别: 新手上路
可可豆: 20 CB
威望: 20 点
在线时间: 74(时)
发自: Web Page
来源于&&分类
关于 iPhone6 Plus 适配的切图问题[已解决]&&&
适配 iPhone6 Plus 遇到这样的问题:比如在 iPhone5 上需要显示一张图,宽度和屏幕等宽,高度为320,也就是640x320,显示在屏幕底部如果适配到 iPhone6 Plus 上这张图片资源是应该按照等比缩放的原则放大到 ,还是按照1.5倍原则切成?如果要想要图片比例不变,AutoLayout应该如何设置?求各位高手解答[ 此帖被catkiller在 16:52重新编辑 ]
级别: 新手上路
可可豆: 20 CB
威望: 20 点
在线时间: 74(时)
发自: Web Page
总算研究明白了,自己回答 = =bAuto Layout 等比缩放:选择添加 Aspect Ratio 约束@3x 切图,原则上还是应该按照 @2x 放大 1.5 倍宽高来切,但这样整个屏幕最后的效果 iPhone6 Plus 和 iPhone 5s 会有不少的区别(比如列表行数增加等)对于有特殊要求的图,比如上面说的原始是底部显示的屏幕同宽图,@2x 大小为 640x320,使用 Aspect Ratio 约束,在 iPhone6 Plus 上 image view 会拉伸为 ,@3x 可以按照这个实际大小来切,对于 iPhone 6,可以使用 @2x 图,但会拉伸,也可以单切一个图,用代码判断屏幕尺寸来切换
级别: 新手上路
可可豆: 1 CB
威望: 1 点
在线时间: 0(时)
发自: Web Page
大神 能不能详细的给解释下呢? 现在要适配6以及6plus有什么简单的办法么?要做3套图?另外我想问下,可不可以直接做出6plus的尺寸,其他的用6plus的尺寸等比缩放为想要的尺寸?
级别: 新手上路
可可豆: 20 CB
威望: 20 点
在线时间: 74(时)
发自: Web Page
引用 引用第2楼太阳当空照于 11:31发表的&&: &&大神 能不能详细的给解释下呢? 现在要适配6以及6plus有什么简单的办法么?要做3套图?另外我想问下,可不可以直接做出6plus的尺寸,其他的用6plus的尺寸等比缩放为想要的尺寸? 要看你的具体需求。我目前开发基本上是以 5/5S 为基准,因为我目前的需求是要把旧的 App 适配到 6 和 Plus 上,所以我是现有 @2x 图,再宽高扩大1.5倍生成 @3x 图,6 继续用 @2x 图,Plus 用 @3x 图,对于全屏的图,是单独按 6 和 Plus 的分辨率再各做一套。适配时是用 Auto Layout,对于图标之类,各分辨率保持宽高相同,系统自己去放大2倍或3倍,对于列表之类,只做屏幕宽度适应。这样做的好处是修改较少,不用每个分辨率都单独做一套图,缺点是各分辨率下实际布局效果有区别,并不是单纯的等比缩放,5和Plus区别尤为明显,原因是Plus分辨率宽高实际已经接近5的2倍了,但还在用1.5倍的图,所以可能会出现,一个列表再5上显示10行,但到Plus上显示13行的情况(每一行都感觉变得细长了)。如果你想要完全等比缩放的效果,那就所有控件大小都要设为等比缩放,每个分辨率单独作图,并手动设置对应哪套图,文字的字体也得分别调大小,这样做最坑爹的是,假如那天出个更大的分辨率,你还得再做一套图并且手动调一遍 = =b
级别: 圣骑士
可可豆: 836 CB
威望: 881 点
在线时间: 1325(时)
发自: Web Page
回 3楼(catkiller) 的帖子
为什么6可以继续用 @2x 图呢?仅仅是因为ppi与iPhone5相同?最开始屏幕是320*480,后来出了iPhone4s,是640*960大小,640是320的两倍,所以用@2x的图,我是这么理解的,iPhone5也继续延用但是iPhone6是750*1334大小, 750/320=2.34,理论上是不是应该用@2.34x的图?求解惑
级别: 新手上路
可可豆: 20 CB
威望: 20 点
在线时间: 74(时)
发自: Web Page
Re:回 3楼(catkiller) 的帖子
引用 引用第4楼cocophey于 18:42发表的 回 3楼(catkiller) 的帖子 :为什么6可以继续用 @2x 图呢?仅仅是因为ppi与iPhone5相同?最开始屏幕是320*480,后来出了iPhone4s,是640*960大小,640是320的两倍,所以用@2x的图,我是这么理解的,iPhone5也继续延用但是iPhone6是750*1334大小, 750/320=2.34,理论上是不是应该用@2.34x的图?求解惑 理论上肯定是用@2.34x的图是完美等比放大,但苹果官方的设计是默认回去调用 @2x 的图。话说6Plus也不是刚好3倍(差一点就4倍了XD)
级别: 新手上路
可可豆: 20 CB
威望: 20 点
在线时间: 74(时)
发自: Web Page
最近看的这篇文章感觉写的很合理,和我之前自己适配的原则也很接近,可参考(图文并茂的)
级别: 新手上路
可可豆: 1 CB
威望: 1 点
在线时间: 2(时)
发自: Web Page
回 5楼(catkiller) 的帖子
请问,回去调用@2X的图是什么意思?是直接使用2X的图,还是更改2X的图后再使用?
级别: 侠客
UID: 427698
可可豆: 612 CB
威望: 441 点
在线时间: 118(时)
发自: Web Page
\(~__~)/ 要抱抱啦... (>﹏<) 不~要~啦 〒▽〒 哇哇~人家不依
级别: 新手上路
UID: 338097
可可豆: 86 CB
威望: 54 点
在线时间: 254(时)
发自: Web Page
mark一下mark一下
Pages: 1/2
关注本帖(如果有新回复会站内信通知您)
发帖、回帖都会得到可观的积分奖励。
按"Ctrl+Enter"直接提交
关注CocoaChina
关注微信 每日推荐
扫一扫 关注CVP公众号
扫一扫 浏览移动版Mac系统下的IOS开发(44)
& & & &首先说下让自己的程序支持iPhone6和6+,第一种使用官方提供的launch screen.xib,这个直接看官方文档即可,这里不再多述;第二种方法是和之前iPhone5的类似,比较简单,为iPhone6和6+添加两张特殊的png
iPhone6:命名:Default-375w-667h@2x.png&& 分辨率:750*1334
6+ 命名:Default-414w-736h@3x.png&&分辨率:
如果要在app的介绍页面里有“为iPhone6,6 plus优化”的字样就必须使用第一种方法,使用第二种方法的话还是会显示“为iPhone5优化”
下面说一下纯代码适配
首先iPhone5的界面一定要完全适配,这样才能完美适配6和6Plus。
首先,我么我们要观察一下5,6和6Plus的尺寸比例关系
很明显能看出这三种屏幕的尺寸宽高比是差不多的,因此可以在5的基础上,按比例放大来适配6和6Plus的屏幕。
在AppDelegate.h中
@property&float&autoSizeScaleX;
@property&float&autoSizeScaleY;
在AppDelegate.m中
#define ScreenHeight [[UIScreen mainScreen] bounds].size.height
#define ScreenWidth [[UIScreen mainScreen] bounds].size.width
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
&&&&AppDelegate *myDelegate = [[UIApplication sharedApplication] delegate];
&&&&if(ScreenHeight & 480){
&&&&&&&&myDelegate.autoSizeScaleX = ScreenWidth/320;
&&&&&&&&myDelegate.autoSizeScaleY = ScreenHeight/568;
&&&&}else{
&&&&&&&&myDelegate.autoSizeScaleX = 1.0;
&&&&&&&&myDelegate.autoSizeScaleY = 1.0;
因为iPhone4s屏幕的高度是480,因此当屏幕尺寸大于iPhone4时,autoSizeScaleX和autoSizeScaleY即为当前屏幕和iPhone5尺寸的宽高比。比如,
如果是5,autoSizeScaleX=1,autoSizeScaleY=1;
如果是6,autoSizeScaleX=1.171875,autoSizeScaleY=1.;
如果是6Plus,autoSizeScaleX=1.29375,autoSizeScaleY=1.2957;
现在我们获取了比例关系后,先来看一下如何解决代码设置界面时的适配。
CGRectMake(CGFloat x, CGFloat y, CGFloat width, CGFloat height)这个方法使我们常用的设置尺寸的方法,现在我设置了一个类似于这样的方法。
在.m文件中
UIImageView *imageview = [[UIImageView alloc] initWithFrame:CGRectMake1(100, 100, 50, 50)];
CG_INLINE CGRect
CGRectMake1(CGFloat x, CGFloat y, CGFloat width, CGFloat height)
&&&&AppDelegate *myDelegate = [[UIApplication sharedApplication] delegate];
&&&&rect.origin.x = x * myDelegate.autoSizeScaleX; rect.origin.y = y * myDelegate.autoSizeScaleY;
&&&&rect.size.width = width * myDelegate.autoSizeScaleX; rect.size.height = height * myDelegate.autoSizeScaleY;
&&&&return&
这样,这个btn按钮在5,6和6Plus的位置和尺寸比例都是一样的。
如果整个项目做完后才开始做适配的话这个方法的优势就体现出来了,面对几十个工程文件,只需自定义并且替换你的CGRectMake方法,再加上storyBoradAutoLay这个方法就瞬间完成大部分甚至全部的适配,如果遇到tableView的或者其他的手动调整一下即可。
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:41300次
排名:千里之外
原创:37篇
转载:30篇
(1)(1)(1)(16)(2)(17)(2)(5)(1)(1)(20)
(window.slotbydup = window.slotbydup || []).push({
id: '4740887',
container: s,
size: '250,250',
display: 'inlay-fix'褰撳墠浣嶇疆:
闃呰?姝f枃
鐩?墠寰堝?绉诲姩UI璁捐?甯堬紝寮

我要回帖

更多关于 iphonex 屏幕适配 的文章

 

随机推荐