zoukankan      html  css  js  c++  java
  • 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

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

    试验反馈二

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

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

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

    试验反馈三

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

    下面给出AutoLayout设置的图解

  • 相关阅读:
    在linux上安装python, jupyter, 虚拟环境(virtualenv)以及 虚拟环境管理之virtualenvwraper
    linux
    Django ORM那些相关操作
    Django 中 form 介绍
    MySQL完整性约束
    git入门
    MySQL表的操作
    努力努力再努力
    Docker初始
    IO模型
  • 原文地址:https://www.cnblogs.com/GJ-ios/p/5483455.html
Copyright © 2011-2022 走看看