iOS autolayout的Content Hugging 和 Content Compression Resistance

Content Hugging 和 Content Compression Resistance

这两个属性对有intrinsic content size的控件(例如button,label)非常重要。通俗的讲,具有intrinsic content size的控件自己知道(可以计算)自己的大小,例如一个label,当你设置text,font之后,其大小是可以计算到的。关于intrinsic content size官方的解释:

Hugging priority 确定view有多大的优先级阻止自己变大。

Compression Resistance priority确定有多大的优先级阻止自己变小。

Hugging priority 确定view有多大的优先级阻止自己变大。

Compression Resistance priority确定有多大的优先级阻止自己变小。

很抽象,其实content Hugging就是要维持当前view在它的optimal size(intrinsic content size),可以想象成给view添加了一个额外的width constraint,此constraint试图保持view的size 不让其变大

view.width <= optimal size

此constraint的优先级就是通过上面的方法得到和设置的,content Hugging默认为250.

Content Compression Resistance就是要维持当前view在他的optimal size(intrinsic content size),可以想象成给view添加了一个额外的width constraint,此constraint试图保持view的size不让其变小

view.width >= optimal size

此默认优先级为750.

时间: 2024-11-08 05:08:08

iOS autolayout的Content Hugging 和 Content Compression Resistance的相关文章

转:AutoLayout中的Content Hugging 和 Content Compression Resistance

OS6中引入了AutoLayout,极大的方便了UI元素的布局,现在已经过去一年了,并且大部分设备的系统也已经升级到了iOS6,是时候要使用此项技术了. 在AutoLayout的学习中有两个概念官方文档讲述的不是很清楚,今天花费了2个小时的时间研究了一下,在此总结一下. Content Hugging 和 Content Compression Resistance 这两个属性对有intrinsic content size的控件(例如button,label)非常重要.通俗的讲,具有intri

详解intrinsicContentSize 及 约束优先级/content Hugging/content Compression Resistance [转]

在了解intrinsicContentSize之前,我们需要先了解2个概念: AutoLayout在做什么 约束优先级是什么意思. 如果不了解这两个概念,看intinsic content size没有任何意义. 注:由于上面这几个概念都是针对UIView或其子类(UILabel,UIImageView等等)来说的.所以下文中都用UIView指代. AutoLayout在做什么 – 一个UIView想要显示在屏幕中,仅须有2个需要确定的元素,一是位置,二是大小.只要2者确定,UIView就可以正

详解intrinsicContentSize 及 约束优先级/content Hugging/content Compression Resistance

在了解intrinsicContentSize之前,我们需要先了解2个概念: AutoLayout在做什么 约束优先级是什么意思. 如果不了解这两个概念,看intinsic content size没有任何意义. 注:由于上面这几个概念都是针对UIView或其子类(UILabel,UIImageView等等)来说的.所以下文中都用UIView指代. AutoLayout在做什么 – 一个UIView想要显示在屏幕中,仅须有2个需要确定的元素,一是位置,二是大小.只要2者确定,UIView就可以正

iOS开发 - Content hugging priority &amp; Content compression resistance priority

1. 什么是Content hugging priority 你可以把它想象成一根放在视图上的橡皮筋. 这根橡皮筋会组织视图超过它本身的固有大小(intrinsic content size). 它存在一个优先级,从0到1000. 1000表示视图绝对不能超过intrinsic content size. 我们来看个例子: 上图中有两个横向排列的标签控件(label),并且你也已经设置好了约束. 这个会工作正常,直到父视图变宽的时候. 那么,问题来了. 如果父视图变宽了,那个label应该变宽呢

iOS: 在代码中使用Autolayout (2) – intrinsicContentSize和Content Hugging Priority【转】

原文:http://www.mgenware.com/blog/?p=491 接上文:iOS: 在代码中使用Autolayout (1) – 按比例缩放和优先级. 我们继续来看在代码中使用Autolayout的话题.先说intrinsicContentSize,也就是控件的内置大小.比如UILabel,UIButton等控件,他们都有自己的内置大小.控件的内置大小往往是由控件本身的内容所决定的,比如一个UILabel的文字很长,那么该UILabel的内置大小自然会很长.控件的内置大小可以通过UI

在代码中使用Autolayout (2) – intrinsicContentSize和Content Hugging Priority

接上文:iOS: 在代码中使用Autolayout (1) – 按比例缩放和优先级. 我们继续来看在代码中使用Autolayout的话题.先说intrinsicContentSize,也就是控件的内置大小.比如UILabel,UIButton等控件,他们都有自己的内置大小.控件的内置大小往往是由控件本身的内容所决定的,比如一个UILabel的文字很长,那么该UILabel的内置大小自然会很长.控件的内置大小可以通过UIView的intrinsicContentSize属性来获取内置大小,也可以通

iOS content Hugging Priority

1.Content Hugging Priority和Content Compression Resistance Priority Content Hugging:内容压缩,阻止视图的实际尺寸比intrinsicContentSize返回的更大 Content Compression Resistance:阻止内容压缩,阻止视图的实际尺寸比intrinsicContentSize返回的更小. Content Hugging Priority:内容压缩优先级,默认为250 Content Com

iOS autoLayout总结

本文转自 http://ruikq.github.io/ios/autolayout/uiscrollview/2015/01/27/iOS-autolayout%E6%80%BB%E7%BB%93.html autolayout, and uiscrollview 以前学习iOS的时候没怎么接触过autoLayout,自从iPhone6个6+出来之后一直在为以前的app做适配,所以使用了大量的autoLayout做适配,一开始很不习惯,但是越用越觉得好用,接触到现在遇到很多问题,在这里总结一下

从此爱上iOS Autolayout

转:从此爱上iOS Autolayout 这篇不是autolayout教程,只是autolayout动员文章和经验之谈,在本文第五节友情链接和推荐中,我将附上足够大家熟练使用autolayout的教程.这篇文章两个月前就想写下来,但因为一直工作较多,没有时间来完成.今天终于狠下心,丢下代码不写,来完成他吧! 一.别和我提Autolayout,我想死!! 从iOS6/xcode4开始,苹果开始提供了autolayout——一种对不同屏幕尺寸有更好兼容的自动布局机制,但我相信大多数人在刚接触auto