导航:首页 > 科技大全 > ios如何适配各种屏幕

ios如何适配各种屏幕

发布时间:2023-06-05 13:03:22

① ios开发需要适配的屏幕尺寸有哪些

主要有四中尺寸,3.5寸,4寸,4.7寸,5.5寸

② ...在系统中如何适应 iphone 5s/6/6 Plus 三种屏幕的尺寸

这个看你个人的喜好。最只要的一点就是最好别用5S。带直角边框的。拿久了你会发现,你手非常疼

③ iOS 四种iPhone屏幕适配方案(借鉴)

Come on! 来看看 主流的适配方案吧
随着苹果发布两种新尺寸的大屏iPhone 6,iOS平台尺寸适配问题终于还是来了,移动设计全面进入“杂屏”时代。看看下面三款iPhone尺寸和分辨率数据就知道屏幕有多杂了。

当然除了这三种还有iPhone4 屏幕是 640*960,加起来就有四种屏幕了,你有没有感觉很复杂,发过愁吗,我们来慢慢分析下
加上Android生态中纷繁复杂的各种奇葩尺寸,现在APP设计开发必须考虑适配大、中、小三种屏幕。所以如何做到交付一套设计稿解决适配大中小三屏的问题?设计和开发之间采用什么协作模式?一个基本思路是:

1、选择一种尺寸作为设计和开发基准;

2、定义一套适配规则,自动适配剩下两种尺寸;

3、特殊适配效果给出设计效果。
来看一下手机淘宝的iPhone 6/iPhone 6 Plus采用的协作模式,再慢慢说明原委。

第一步,视觉设计阶段,设计师按宽度750px(iPhone 6)做设计稿,除图片外所有设计元素用矢量路径来做。设计定稿后在750px的设计稿上做标注,输出标注图。同时等比放大1.5倍生成宽度1125px的设计稿,在1125px的稿子里切图。

第二步,输出两个交付物给开发工程师:一个是程序用到的@3x切图资源,另一个是宽度750px的设计标注图。

第三步,开发工程师拿到750px标注图和@3x切图资源,完成iPhone 6(375pt)的界面开发。此阶段不能用固定宽度的方式开发界面,得用自动布局(auto layout),方便后续适配到其它尺寸。

第四步,适配调试阶段,基于iPhone 6的界面效果,分别向上向下调试iPhone 6 plus(414pt)和iPhone 5S及以下(320pt)的界面效果。由此完成大中小三屏适配。
为什么选择iPhone 6作为基准尺寸?
当面对大中小三种屏幕需要适配的时候,很容易想到先做好一种屏幕,再去适配剩下两种屏幕。第一个决定是到底以哪种屏幕作为设计和开发的基准尺寸。我们选择中间尺寸的iPhone 6(750px/375pt)作为基准,基于几个原因:
1、从中间尺寸向上和向下适配的时候界面调整的幅度最小。375pt下的设计效果适配到414pt和320pt偏差不会太大。假设以414pt为基准做出很优雅的设计,到320pt可能元素之间比例就不是那么回事了,比如图片和文字之间视觉比例可能失调。

2、iPhone 6 plus有两种显示模式,标准模式分辨率为1242x2208,放大模式分辨率为1125x2001(即iPhone 6的1.5倍)。可见官方系统里iPhone 6和iPhone 6 plus分辨率之间就存在1.5倍的倍率关系。很多情况下这两种尺寸可以用1.5倍直接等比适配。
3、1242x2208这个奇葩的数值是苹果官方都不愿意公开宣传的一个分辨率,不便于记忆和计算栅格。640x1136虽然是广泛应用的一个分辨率,但是大屏时代依然以小尺寸为设计基准显然不合时宜,设计师会停留在小屏的视角做设计。

所以,iPhone6的750x1334是最适合基准尺寸。

只交付一套设计稿,默认用什么规则来适配?

前文提到适配策略是先选择iPhone 6作为基准设计尺寸,然后通过一套适配规则自动适配到另外两种尺寸。这套适配规则总结起来就一句话:文字流式,控件弹性,图片等比缩放

控件弹性指的是,navigation、cell、bar等适配过程中垂直方向上高度不变;水平方向宽度变化时,通过调整元素间距或元素右对齐的方式实现自适应。这样屏幕越大,在垂直方向上可以显示更多内容,发挥大屏幕的优势。

按照上述默认适配规则,大中小三种屏幕显示效果均相同。有时候想在大屏幕显示更多内容,需要设计出特殊适配效果。比如App store首页焦点图,从iPhone 6适配到iPhone 6 plus时焦点图尺寸和排版做了特殊处理。底下应用列表也从一排3+个变成一排4+个,真正实现了大屏幕显示更多内容的理念。这些就需要设计师给出相应设计稿。

读完你懂了吗,如果有疑问,欢饮留言跟我讨论╰( ̄▽ ̄)╮

原文地址

④ iphone X 怎么做屏幕适配

  1. 这里用 iPhone 6举例子是因为大部分设计师都用 iPhone 6 来做设计稿,方便大家理解,其实 iPhone 8也是这个分辨率。iPhone 6:750×1334(375x667pt @2x)

  2. iPhone X :1125px × 2436px (375pt × 812pt @3x)在逻辑像素上 iPhone X 的宽度和 iPhone 6 保持一致,这是高度高了145pt(812-667),如果你是用@1x做设计稿的时候,那么你在适配 iPhone X 的时候会方便很多很多,因为只需要增加高度就能得到 iPhone X 的大小,你所有的 symbol 基本都不要变,只是复制几个苹果爸爸的 symbol 到你 symbol 里面即可。用来做 iPhone X 的设计稿(一般也不单独做 iPhone X 设计)但是如果你用@2x 来做设计稿的只是稍微麻烦点,毕竟苹果爸爸Sketch UI Kit 都是基于@1x 来做设计稿的,所以你只能把 symbol 重新解散然后做成@2x大小的尺寸,会比较麻烦。

  3. 虽然它们的逻辑像素宽度一致,但是他们的像素分辨率是不一样的,iPhone 6 采用@2x切图,iPhone X 采用@3x 切图。有人会有用@2x 做设计稿那怎么适配 iPhone X 设计稿,难道要缩放?? iPhone 6 (750x1334px)尺寸到 iPhone X(1125x2436px),虽然两者的宽度关系是1.5倍,但是通过缩放做 iPhone X 也是相当麻烦啊,因为你的 Sketch 设计稿里面可能存在 symbol,所以这样的做法是行不通的,其实如果你的团队都是用@2x 来做设计稿的话,也没啥问题,那接下来的就提供一个更简单的方法解决 iPhone X 适配问题。

最后总结

  • 这里只是讲解了iPhone X 一小部分和 iOS 适配问题,还有其他适配的经验希望大家在工作中去积累总结,我这里就不一一讲解了。

  • 由于 iPhone X的屏幕比例发生变化,对于长期靠“等比缩放”完成适配的H5活动页而言也有不小的影响,需要对页面结构进行适当微调(注意缩放的时候不要把主体裁切了,然后注意页面的布局在 iPhone X 上面的变化)

  • 如果你的 app 有全屏尺寸的活动图,没有导航栏,这个时候应该给开发 @2x(750×1334) 和 @3x(1125×2001) 图,然后 iPhone X 上的图会使用@3x的图按照高度铺满然后裁切两边(注意两侧被裁切区域不要包含重要内容)

    ⑤ ios 系列设备的分辨率各是多少,如何做适配

    分辨率和像素

    经新xcode6模拟器验证(分辨率为pt,像素为真实pixel):

    1.iPhone5分辨率320x568,像素640x1136,@2x

    2.iPhone6分辨率375x667,像素750x1334,@2x

    3.iPhone6 Plus分辨率414x736,像素1242x2208,@3x,(注意,在这个分辨率下渲染后,图像等比降低pixel分辨率至1080p(1080x1920)

    自动适配

    不处理时自动等比拉伸,如果在老工程打印屏幕frame,依然是320x568

    对比自动适配的和完美适配的导航栏就能看出问题:

    因为拉伸所以会有一些虚,导航栏明显比64要大,但相比3.5寸到4寸的留黑边还是好很多。

    如何关闭自动适配方案呢?这个还是老思路,换启动图:

    除了换启动图外,不得不说的是,新Xcode中可以使用一个xib来设置启动图:

    不过这个xib不能关联任何的代码(不能自定义View的Class,不能IBOutlet,不能加Object),可以理解成这个xib就是一张截图,这个方案的好处在于可以使用到Size Classes来针对不同屏幕布局这个xib(感兴趣可以看《Size Classes初探》)

    关于手动适配

    只要手动指定了启动图或者那个xib,屏幕分辨率就已经变成应有的大小了,老代码中所有关于写死frame值的代码通通倒霉,如果去手动适配就要全部适配,建议在找到个可行方案前先不要做修改,自动适配方案还算不影响使用。

    面对4个分辨率的iPhone,建议使用Auto Layout布局 + Image Assets管理各个分辨率的图片 + Interface Builder(xib+storyboard)构建UI,Size Classes在低版本iOS系统的表现未知。想要这套手动适配方案,起码你的工程需要部署在iOS6+,还不用AutoLayout布局的会死的蛮惨。

    关于Xcode 6

    模拟器路径被换成了 ~/Library/Developer/CoreSimulator/Devices/

    xcode6中已经找不到iOS6的模拟器了,是时候说服大家放弃iOS7-了

    现在起提交App Store强制需要支持64位,是时候梳理一遍所有依赖的第三方lib,更新到64位。(编辑注:这一条据说是个bug)

    ⑥ ios 布局怎么适配每一种屏幕

    getBounds().xgetBounds().ygetBounds().widthgetBounds().height自己动手丰衣足食,根据frame的大小,让它自己调动吧比如窗口宽300px,你想让按钮宽30px,你就getBounds().width*0.1

    ⑦ iOS屏幕适配的两种方法

    第一种

    添加两个文件  UIViewExt.h与UIViewExt.m文件

    在ViewController.h文件中导入头文件

    #import"UIViewExt.h"

    然后宏定义 获取设备的高与宽

    #define HEIGHT self.view.height

    #define WIDTH self.view.width

    然后在ViewController.m文件中初始化各种控件时就可以使用视图的相对位置



    self.lblName=[[UILabelalloc]initWithFrame:CGRectMake(self.view.left+50,self.view.top+100,WIDTH/8,HEIGHT/16)];

    self.lblPassworw=[[UILabelalloc]initWithFrame:CGRectMake(self.view.left+50,self.lblName.bottom+10,WIDTH/8,HEIGHT/16)];

    第二种

    这种方法是 等比缩放

    首先在AppDelegate.h文件里面

    宏定义 获取设备的高与宽

    #define SCREENHEIGHT [[UIScreen mainScreen] bounds].size.height

    #define SCREENWIDTH [[UIScreen mainScreen] bounds].size.width

    接着声明两个属性变量

    @property(assign,nonatomic)floatautoSizeScaleX;

    @property(assign,nonatomic)floatautoSizeScaleY;

    在AppDelegate.m文件里面

    //初始化AppDelegate单例的方法

    AppDelegate*myDelegate=[[]delegate];

    //判断屏幕的高大于480即为iPhone5或以上设备因为它们屏幕都是等比增长的

    if(SCREENHEIGHT>480)

    {

    /**

    *以iPhone5为基准若是iPhone5

    则myDelegate.autoSizeScaleX=SCREENWIDTH/320;

    即为myDelegate.autoSizeScaleX=320/320;

    若是iPhone6

    则myDelegate.autoSizeScaleX=SCREENWIDTH/320;

    即为myDelegate.autoSizeScaleX=375/320;

    */

    myDelegate.autoSizeScaleX=SCREENWIDTH/320;

    myDelegate.autoSizeScaleY=SCREENHEIGHT/568;

    }

    else{

    /**

    *否则即为iPhone4

    */

    myDelegate.autoSizeScaleX=1.0;

    myDelegate.autoSizeScaleY=1.0;

    }

    在ViewController.h文件中使用时导入头文件

    #import"AppDelegate.h"

    模仿系统的CGRectMake方法 重写一个CGRectMake1方法  在初始化控件时用这个方法就可以实现等比缩放 来失陪不同屏幕尺寸的iPhone

    /**

    *  CG_INLINE为内联函数

    将CGRectMake重新定义为CGRectMake1

    *

    *  @param x      <#x description#>

    *  @param y      <#y description#>

    *  @param width  <#width description#>

    *  @param height <#height description#>

    *

    *  @return rect的大小

    */

    CG_INLINECGRect

    CGRectMake1(CGFloatx,CGFloaty,CGFloatwidth,CGFloatheight)

    {

    CGRectrect;

    AppDelegate*myDelegate=[[]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;

    returnrect;

    }

    阅读全文

    与ios如何适配各种屏幕相关的资料

    热点内容
    u盘有微信文件但微信恢复不了 浏览:585
    苹果的网站数据是什么 浏览:22
    ps滚字教程 浏览:237
    win7网络邻居如何保存ftp 浏览:186
    安卓客户端代理服务器 浏览:572
    编程用苹果 浏览:659
    51虚拟机的文件管理在哪里 浏览:13
    win10系统有没有便签 浏览:722
    java引用传递和值传递 浏览:109
    oracle下载安装教程 浏览:854
    php筛选数据库 浏览:830
    怎么用手机看wlan密码 浏览:745
    奥维地图导入的文件在哪里 浏览:364
    sdltrados2014教程 浏览:43
    培训制度文件在哪里找 浏览:601
    勒索病毒防疫工具 浏览:861
    win10c不能打开 浏览:375
    xfplay影音先锋苹果版 浏览:597
    两个文件打开两个word 浏览:921
    苹果6s桌面图标轻微抖动 浏览:326

    友情链接