美文网首页
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