美文网首页iOS 进阶
Xib同一层级Content Compression Resis

Xib同一层级Content Compression Resis

作者: struggle3g | 来源:发表于2018-05-27 02:21 被阅读93次

    引言

    回顾

    XIB同一层级,两个Label的Content Hugging Priority
    讲了内容环绕优先级,谁的内容环绕优先级高,谁就会当成一个中心点被别人环绕,我就这么点空间,我不会拉伸,如果别人够不到我,就需要别人拉伸来够到我。就是这么个意思。

    Content Compression Resistance Priority的含义

    中文翻译就是,内容压缩阻力优先级,字面的含义,就是抗压缩的能力高低的优先级。

    实际工作中的例子

    • 工作当中遇到在一个层级中两个label,蓝色==label3、橙色==label4
      1. label3设置的约束:leading、top固定,label3的右边会根据内容自适应拉伸
      2. label4设置的约束:trailing、top固定
    • 然后label3根据内容自适应的长度,会直接覆盖掉label4一部分内容
      这个在开发过程当中是不被允许的,label4被挡住了

    分析原因

    • label3是向右根据内容自适应拉伸,左上位置固定
    • label4是向左根据内容自适应拉伸,右上位置固定
      约束label3与label4之间的固定距离,从而达到label3不会覆盖label4

    添加固定间距约束


    尼玛报错!


    分析原因

    图中报错,给出的提示是需要给label3、label4的抗压缩能力优先级提高
    当label3的内容向右拉伸的时候超过了跟label4约定的10的间距分两种情况:
    - 将label3压缩以适应跟Label4之间固定10的间距
    - 将label4压缩以适应跟label3之间固定10的间距

    解决方案

    • 设置Lable3的抗压缩能力优先级高默认750,现在修改成751.



      我们发现,label4被压缩了。并且label3全部显示出来,label3与label4之间的间距为10

    • 设置Lable3的抗压缩能力优先级低默认750,现在修改成749.



      我们发现,label3被压缩了。并且label4全部显示出来,label3与label4之间的间距为10

    结果

    • Content Compression Resistance Priority抗压缩能力优先级,谁的优先级越高,也就是它的抗压能力越强
    • 当两者重叠的时候,固定距离显示、设置它们的间距约束,并想让哪一方全部显示,那么就设置哪一方的Content Compression Resistance Priority的值高
      例如:A与B重叠,A与B之间存在间距约束:
      • A全部显示B压缩,设置A的Content Compression Resistance Priority>B的Content Compression Resistance Priority
      • B全部显示A压缩,设置B的Content Compression Resistance Priority>A的Content Compression Resistance Priority

    相关文章

      网友评论

        本文标题:Xib同一层级Content Compression Resis

        本文链接:https://www.haomeiwen.com/subject/frivjftx.html