• AutoLayout


    在文章开始先放上几个链接,是我当时为了弄清楚AutoLayout看过的比较有帮助的文章:

    http://www.cocoachina.com/ios/20141011/9871.html

    http://www.cocoachina.com/ios/20150421/11632.html

    https://www.natashatherobot.com/ios-autolayout-scrollview/

    Equality, Not Assignment

    “是相等,不是赋值” ---- 理解这个非常重要,因为赋值是将等式右边的结果赋给左边的变量,而相等是让等式的两边结果相等,确实很难用表达式表达这样一种关系,但在Apple文档用了=,如果只是看等式很难知道这其中的奥妙,最关键是看Apple的文档对这个的解释,即使换做是 == 也很难说明其内在的逻辑关系,==是逻辑判断,其结果是真或者假,在APPLE 的文档大概的表达的意思是,依据一组相互作用的约束,使每个约束的关系(关系包括三种:等于、大于等于和小于等于)两边的运算结果满足这种关系。

    prototype constraints

    当我们把一个视图拖到场景中时,设计起会默认帮我们建立若干预先定义的prototype constrains 约束,这种约束是不可见也不能编辑的。当我们添加一个约束的时候,这种prototype约束就会自动去除,所以我们要完成所有约束让这个视图的自动布局能正确工作。

    为什么是Leading和Trailing,而不是left 和 right?

    其实left 和 right 都有,但是考虑到阅读方向的问题,leading 和 Trailing 就很容易理解了,大部分地区和国家的阅读习惯都是从左到右,可在某些地区仍然保留有从右向左阅读的习惯,那么Leading和Trailing表示头和尾就很容易理解,而且会随着阅读方向的调整而自动调整,而left 和 right 确实绝对值,左边就是左边,右边就是右边。所以使用leading 和 Trailing可以自适应。

    Intrinsic Content Size, Compression Resistance 和 Content Hugging

    Instrinsci Content Size 内在的内容尺寸, 这个可以参考一下按钮控件, 按钮控件中间包裹文字的区域的大小就是Intrinsic Content Size,  Compression Resistance 按照翻译就是抗压性,而Content Hugging就是抗拉性,可以想象内容空间由两股力量作用的结果,一个力量是要撑开空间(Compression Resistance),另外一个力量是拉住不让向外扩张(Content Hugging),当两个力量共同作用在一个方向上时候,其结果决定了在这个方向上的大小。默认情况下,抗拉性的优先级别为250(可理解为权重),而抗压性的优先级为750,所以更倾向于让内容空间更大。

  • 相关阅读:
    js setTimeout深度递归后完成回调
    [Err]1267
    YII数据库操作中打印sql
    Creating a web server in pure C(c/c++ 写web server)
    lighttpd 介绍及安装
    HDU 1003 Max Sum
    2014-8-10 掉落不简单
    最全SpringMVC具体演示样例实战教程
    Android 之 资源文件的介绍及使用
    我的创业劲儿,无可阻挡-JAVA学院张孝伟
  • 原文地址:https://www.cnblogs.com/zengsiyu/p/5126364.html
Copyright © 2020-2023  润新知