美文网首页
Content Hugging 和 Content Compre

Content Hugging 和 Content Compre

作者: 金抽抽o | 来源:发表于2017-08-17 17:40 被阅读0次

    Content Hugging

    view.width <= optimal size,它的意思是此constraint试图保持view的size不让其变大:

    举个例子:
    <pre><code>|-(leftCons)-(label)-(rightCons)-|
    leftCons.constant = 10
    rightCons.constant = 10
    比如现在label的真实内容很短,也就是小于SCREENWITH-10*2,我们为了不让它变大,保持一个最合适的长度。(<=)
    这里我们可以这么修改:
    rightCons.priority = 250
    label.Hpriority = 251
    label.Hpriority优先级更高一些,所以hugging起到作用<=
    </code></pre>

    Content Compression Resistance

    view.width >= optimal size,此constraint试图保持view的size不让其变小:

    举个例子:
    <pre><code>|-(leftCons)-(label)-(rightCons)-|
    leftCons.constant = 100
    rightCons.constant = 100
    比如现在label的真实内容很长,大于SCREENWITH-100*2,我们为了不让它变小,保持一个最合适的长度。(>=)
    这里我们可以这么修改:
    rightCons.priority = 749
    label.Hpriority = 750
    label.Hpriority优先级更高一些,所以Compression Resistance起到作用>=
    </code></pre>

    再来个更复杂点的:

    <pre><code>
    |-8-(label1)-8-(label2)-rightCons-|
    现在的需求是这样,label1的内容可长可短,label2的内容固定.当label1很短的时候,label2需要紧贴着label1,当label1很长的时候,label2固定在右侧8px处,label1末尾打省略号.
    通俗一点就是:
    |成都市武侯区 17708179999 |
    |成都市武侯区成都市武侯区成都市武侯区.... 17708179999|

    现在我们可以这样书写:

    rightCons.relation = (>=)这里肯定是>=,因为它右侧是不固定的
    rightCons.priority = 751 我们的目标是label1不能显示完全,也就是<=他自身,所以这里的等级需要比下面label的大
    label2.Content Compression Resistance priority = 750
    label1.Content Compression Resistance priority = 749

    这里说明几点:
    1.rightCons.relation = (>=)当内容很少时,两个label靠左实现,当内容很长时,label2居屏幕右侧,label1自适应
    2.rightCons.priority最大,保证了不会因为两个label的长度太长而被挤出屏幕.
    3.label2. priority > label1.priority ,也就是说label2的防止自己变小的能力大一些,相对来着label1就会被压缩.

    </code></pre>

    相关文章

      网友评论

          本文标题:Content Hugging 和 Content Compre

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