如何处理ios开发中的屏幕适配问题

 我来答
ID千里一醉
2016-03-20 · TA获得超过3228个赞
知道小有建树答主
回答量:963
采纳率:0%
帮助的人:657万
展开全部
 屏幕适配问题共有四种解决方案:(1)根据屏幕宽高写控件frame(下策);(2)Autoresizing的使用(中策);(3)AutoLayout的使用(上策);(4)sizeClasses+AutoLayout的使用(上上策)。下面将会分别来进行叙述。
  (1)根据当前屏幕的宽高写frame
  在新特性界面中,根据:[UIScreen mainScreen].bounds.size.height.来判断用户的屏幕长度,来判断时3.5寸,4寸,4.7寸,5.5寸,以此来设置新特性中图片选用哪套。
  常用写法:
  #define JKScreenW [UIScreen mainScreen].bounds.size.width
  CGFloat btnW = JKScreenW * 0.2;
  缺点:代码复杂,容易出错;而且维护难度大,灵活性极差。
  (2)Autoresizing使用
  在Autolayout以前,有Autoresizing可以做屏幕适配,但局限性较大,只能针对父子关系进行有限调整,如边距固定,尺寸可变,对于兄弟关系的调整无法实现。对于UI比较固定的app,这种方式基本满足。相比之下,Autolayout比Autoresizing强大很多。
  (3)Autolayout使用
  --在以前的iOS程序是怎样布局UI的?
  经常编写大量的坐标计算代码;
  为了保证在各种屏幕上都能有完美的UI界面效果,有时还需要分别为几种屏幕编写不同的坐标计算代码(即传说中的“屏幕适配”)
  --什么是Autolayout?
  Autolayout是一种“自动布局”技术,专门用来布局UI界面的。
  Autolayout自iOS6开始引入,由于Xcode4的不给力,当时并没有得到很大的推广。
  自iOS7(Xcode5)开始,Autolayout的开发效率得到很大的提升。
  苹果官方也推荐开发者使用Autolayout来布局UI界面。
  Autolayout能够很轻松的解决屏幕适配的问题。
  (4)Size Classes使用
  iOS8中新增了Size Classes特性,他是对当前所有iOS设备尺寸的一个抽象。
  用法:
  屏幕的宽和高分别分成三种情况:(Compact,Regular,Any).也就是紧凑,正常和任意。这样宽和高三三整合,一共九种情况。针对每一种情况,如果需要的话,我们可以单独在storyboard或xib中设置UIView的自动布局约束,甚至某一个button是否显示都是能轻松实现的。
好程序员
2016-09-26 · HTML5前端培训/大数据培训/Java
好程序员
好程序员是IT高端课程培训基地,从平凡到卓越,为梦想而拼搏。
向TA提问
展开全部
 屏幕适配问题共有四种解决方案:(1)根据屏幕宽高写控件frame(下策);(2)Autoresizing的使用(中策);(3)AutoLayout的使用(上策);(4)sizeClasses+AutoLayout的使用(上上策)
(1)根据当前屏幕的宽高写frame
  在新特性界面中,根据:[UIScreen mainScreen].bounds.size.height.来判断用户的屏幕长度,来判断时3.5寸,4寸,4.7寸,5.5寸,以此来设置新特性中图片选用哪套。
  常用写法:
  #define JKScreenW [UIScreen mainScreen].bounds.size.width
  CGFloat btnW = JKScreenW * 0.2;
  缺点:代码复杂,容易出错;而且维护难度大,灵活性极差。
  (2)Autoresizing使用
  在Autolayout以前,有Autoresizing可以做屏幕适配,但局限性较大,只能针对父子关系进行有限调整,如边距固定,尺寸可变,对于兄弟关系的调整无法实现。对于UI比较固定的app,这种方式基本满足。相比之下,Autolayout比Autoresizing强大很多。
  (3)Autolayout使用
  --在以前的iOS程序是怎样布局UI的?
  经常编写大量的坐标计算代码;
  为了保证在各种屏幕上都能有完美的UI界面效果,有时还需要分别为几种屏幕编写不同的坐标计算代码(即传说中的“屏幕适配”)
(4)Size Classes使用
  iOS8中新增了Size Classes特性,他是对当前所有iOS设备尺寸的一个抽象。
  用法:
  屏幕的宽和高分别分成三种情况:(Compact,Regular,Any).也就是紧凑,正常和任意。这样宽和高三三整合,一共九种情况。针对每一种情况,如果需要的话,可以单独在storyboard或xib中设置UIView的自动布局约束,甚至某一个button是否显示都是能轻松实现的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
千锋教育
2016-07-11 · 做真实的自己 用良心做教育
千锋教育
千锋教育专注HTML5大前端、JavaEE、Python、人工智能、UI&UE、云计算、全栈软件测试、大数据、物联网+嵌入式、Unity游戏开发、网络安全、互联网营销、Go语言等培训教育。
向TA提问
展开全部
屏幕适配问题共有四种解决方案:
(1)根据屏幕宽高写控件frame(下策);
(2)Autoresizing的使用(中策);
(3)AutoLayout的使用(上策);
(4)sizeClasses+AutoLayout的使用(上上策)。

具体实现方法:
(1)根据当前屏幕的宽高写frame
常用写法:
#define JKScreenW [UIScreen mainScreen].bounds.size.width
CGFloat btnW = JKScreenW * 0.2;
缺点:代码复杂,容易出错;而且维护难度大,灵活性极差。

(2)Autoresizing使用
在Autolayout以前,有Autoresizing可以做屏幕适配,但局限性较大,只能针对父子关系进行有限调整,如边距固定,尺寸可变,对于兄弟关系的调整无法实现。对于UI比较固定的app,这种方式基本满足。相比之下,Autolayout比Autoresizing强大很多。

(3)Autolayout使用
在以前的iOS程序是怎样布局UI的,经常编写大量的坐标计算代码,为了保证在各种屏幕上都能有完美的UI界面效果,有时还需要分别为几种屏幕编写不同的坐标计算代码(即传说中的“屏幕适配”)。
Autolayout是一种“自动布局”技术,专门用来布局UI界面的。Autolayout自iOS6开始引入,由于Xcode4的不给力,当时并没有得到很大的推广。自iOS7(Xcode5)开始,Autolayout的开发效率得到很大的提升。苹果官方也推荐开发者使用Autolayout来布局UI界面。Autolayout能够很轻松的解决屏幕适配的问题。

(4)Size Classes使用
iOS8中新增了Size Classes特性,是对当前所有iOS设备尺寸的一个抽象。
用法:
屏幕的宽和高分别分成三种情况:(Compact,Regular,Any)也就是紧凑,正常和任意。这样宽和高三三整合,一共九种情况。针对每一种情况,如果需要的话,可以单独在storyboard或xib中设置UIView的自动布局约束,甚至某一个button是否显示都是能轻松实现的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式