zoukankan      html  css  js  c++  java
  • 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,所以更倾向于让内容空间更大。

  • 相关阅读:
    java实现动态上传多个文件并解决文件重名问题
    MySQL存储过程之事务管理
    Java IO--字符流--InputStreamReader 和 OutputStreamWriter
    Java IO--字符流--BufferedReader和BufferedWriter
    java线程同步小结
    进程和线程的区别与联系
    java中“==”和equals方法的区别,再加上特殊的String引用类型
    java.util.Date 与 java.sql.Date 之间的转换
    Java Applet 与Servlet之间的通信
    Applet 应用程序进行数字签名,对系统文件进行读写操作
  • 原文地址:https://www.cnblogs.com/zengsiyu/p/5126364.html
Copyright © 2011-2022 走看看