• AutoLayout 使用详细


    1.实际应用中,这Compact,Any,Regular如何运用呢?

    w:Any h:Any 是我们刚建立工程时候默认选择的,算是一切描述的父类.其他的种类描述都是在此基础上变化的,比如:如果weight设为Any,height设置为Regular,那么在该状态下的界面元素在只要height为Regular,无论weight是Regular还是Compact的状态中都会存在.于是:

    w:Compact h:Compact - (w:Any h:Compact , w:Compact h:Any , w:Any h:Any)

    w:Regular h:Compact - (w:Any h:Compact , w:Regular h:Any , w:Any h:Any)

    w:Compact h:Regular - (w:Any h:Regular , w:Compact h:Any , w:Any h:Any)

    w:Regular h:Regular - (w:Any h:Regular , w:Regular h:Any , w:Any h:Any) 

    2. 再来看一组数据和一张图(国外一位博主给出的,很形象):

    iPhone4S,iPhone5/5s,iPhone6

    竖屏:(w:Compact h:Regular)

    横屏:(w:Compact h:Compact)

    iPhone6 Plus

    竖屏:(w:Compact h:Regular)

    横屏:(w:Regular h:Compact)

    iPad

    竖屏:(w:Regular h:Regular)

    横屏:(w:Regular h:Regular)

    3.可以总结为: 

    • 如果项目不支持横屏显示,使用w:Compact h:Regular(或者直接取消使用Size Class) 

    • 如果项目支持横屏显示,使用w:Compact h:Regular+w:Any h:Compact 

    • 对于一些公有的约束(任意组合中都适用),一般放在w:Any h:Any中设置 

    • iPad同理

    所以,我觉得Size Class最大的帮助是,解决横屏适配和iPhone iPad共享一个设计板…(个人意见) 

    试验反馈一

    1.首先,先建立一个工程,展开如下页面

    PS:这是iOS8的新特性,真的用到项目里需要等放弃兼容iOS7 。。。显然,目前还是不行的 

    2.在Any Any情况下,放置一个Label,并设置约束上-左-下-右为0-0-20-0

    3.在Compact Any情况下,又放置一个Label,并设置约束上为20

    5.最后切换到Regular Any下,完成6 Plus 的横屏显示

    试验反馈二

    试验一里面,验证了一下概念中所列举的各个屏幕适用的组合,接下来,算是Size Class 解决横屏的妙用

    PS:运用于,横屏适配,重新排版竖屏时候的UI布局 

    除了改动不同组合下约束,也能改动控件在不同组合下是否显示

    试验反馈三

    AutoLayout这里不给具体如何设置,因为不知道如何写,感觉还是大家多动手去写,去试,最有效了

    下面给出AutoLayout设置的图解

  • 相关阅读:
    ES5数组扩展
    ES5给object扩展的一些静态方法
    poj2531-dfs
    快排
    阶段性总结-贪心算法
    日常算法题
    poj1979 解题报告
    poj 2586
    poj3069
    poj2709 解题报告
  • 原文地址:https://www.cnblogs.com/immensity1993/p/5483234.html
Copyright © 2020-2023  润新知