美文网首页
Intrinsic Content Size

Intrinsic Content Size

作者: zziazm | 来源:发表于2018-03-01 10:18 被阅读15次

    Intrinsic Content Size:直译过来是固定内容尺寸,它是autolayout里的一个重要概念。大多数控件有能力根据自己的内容决定自己的size,比如UILabel根据文本可以确定自己的宽度和高度,这被称作固定内容尺寸。通常,使用Intrinsic Content Size需要设置view的 Content Compression Resistance PriorityContent Hugging Priority
    新建一个工程,在storyboard里拖入一个Label;并且添加距离上间距和左间距的约束:

    第一个label
    放置第二个label,给第二个label添加左间距,上间距和右间距的约束:
    第二个label
    上面并没有给两个label设置宽和高的约束,
    这两个label的宽高现在是根据它的文本获得的。我们把第一个label的文本改成A:
    屏幕快照 2018-03-01 上午10.18.36.png
    这时候会有Content Priority Ambigulty的错误。由于两个label都没有固定的宽度,当其中一个label文本变化需要改变size时,autolayout不知道该如何分配两个label变化的比例。
    按照它的提示,需要修改label的content priority,选中第一个label:
    屏幕快照 2018-03-01 上午10.29.50.png
    查看第二个label,第二个label的Content Hugging Priority和Content Compression Resistance Priority和第一个label是一样的。
    • Content Hugging Priority:这个值越高表示越不容易被拉伸;
    • Content Compression Resistance Priority:这个值越高表示越不容易被压缩;
      我们把第一个label的Content Hugging Priority的Horizontal改成252,此时它的不被拉伸优先级高于第二个label;storyboard变成了下面这样:


      屏幕快照 2018-03-01 上午10.43.04.png

      第二个label会被拉伸。

    如果把第二个label的 Content Hugging Priority的值比第一个label设置的高,则第二个label不被拉伸,如下所示:

    屏幕快照 2018-03-01 上午10.52.01.png

    相关文章

      网友评论

          本文标题:Intrinsic Content Size

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