码迷,mamicode.com
首页 > 移动开发 > 详细

iOS 屏幕适配之sizeclass

时间:2015-02-06 14:37:31      阅读:183      评论:0      收藏:0      [点我收藏+]

标签:

1. 屏幕适配的各种技术

  1> 3gs\4\4s时代:没有屏幕适配一说,尺寸只有一个,直接用代码计算frame就行了

  2> iPad出现:为应对横竖屏,苹果推出autoresizing,它的作用是让子控件能跟随父控件做拉伸.如下图,autoresizing可以让红色的子控件的宽度始终铺满屏幕

技术分享

  3> 5\5c\5s的出现:autoresizng不够用了,因为它只能解决父子关系控件的排布问题,解决不了兄弟关系控件之间的位置关系,所以autolayout出现了.

  autolayout,可以在任意2个控件之间建立位置关系

  4> 6\6plus的出现:autolayout又不够用了,sizeclass可以实现autolayout做不到需求

    autolayout不够用的原因:

      a>Universal的项目,有2套storyboard,一套是给iphone用,另一套给ipad用的,这就意味着需要对每一套storyboard,设置约束

      b>非Universal项目,比如iphone项目,autolayout无法实现 不同尺寸的iphone使用不同的布局方案

 

2.sizeclass

  1>sizeclass 仅仅是对屏幕进行了分类,真正排布UI元素的还是autolayout

  2>不再有横竖屏的概念,只有屏幕尺寸的概念

  3>不再有具体尺寸的概念,只有抽象尺寸的概念

2.1 抽象尺寸:把长和宽各分为3种:分别是Compact(紧凑的),Any,Regular(宽松)

  1>这样一划分,屏幕尺寸就9种排列组合:

技术分享 技术分享

技术分享 技术分享

  

  2>在不同屏幕尺寸类型下,可以为控件添加不同的约束条件

技术分享

 

  3>可以让同一个imageView,在不同的屏幕尺寸洗,显示不同的图片

技术分享

 

  4>还可以让label在不同的屏幕尺寸下,显示不同的font

技术分享

 

 

  5>符号解释:

    - compact

    * any

    + regular

  6>注意尺寸的继承性: any Width | any Height 是Base Values For all layouts,也就是说在any Width | any Height尺寸类型下,给控件添加的约束会影响到其他尺寸类型.例如下面这两约束会报警告.

    在any Width | any Height 给button添加了和左边界固定距离的约束,

    在compact Width | compact Height 给button添加了和右边界固定距离的约束,

技术分享 

 

iOS 屏幕适配之sizeclass

标签:

原文地址:http://www.cnblogs.com/oumygade/p/4276248.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!