Content Compression Resistance和Content Hugging

原创 2015年11月18日 23:03:41

一 基础知识

1.Intrinsic Content Size:
就是像button,label等文本的size。其中橙色虚线既是label默认的Content Size。(会根据label的text内容的不同,而不同)
这里写图片描述
2.Content Hugging:抗拉伸 Content Compression Resistance: 抗压缩
下图为 xib中 默认的数值。
这里写图片描述

注意:仅当视图定义了自己的Intrinsic Content Size,那么它的Content Compression Resistance优先级和Content Hugging优先级属性才有作用。

二 总规则:

Horizontal方向(水平方向):

  1. 宽度< Content Size ,并且宽度约束优先级< Content Compression Resistance

    • 抗压缩起作用,宽度= Content Size,用户想要设置的宽度无效。
      • 例子:
        对于Content Compression Resistance默认的优先级下(750),需要把控件的宽度约束优先级设置UILayoutPriorityRequired(1000),宽度才会满足用户的设置要求,否则宽度则为Content Size。
  2. 宽度> Content Size,并且宽度约束优先级< Content Hugging优先级

    • 抗拉伸起作用,宽度 = Content Size,用户想要设置的宽度无效。
      • 例子:
        • 对于Content Hugging默认的优先级下(251),需要把控件的宽度约束优先级设置UILayoutPriorityDefaultHigh(750),宽度才会满足用户的设置要求,否则宽度则为Content Size。

Vertical方向(垂直方向):
同水平方向。只不过比的是高度。

三 详细说明

一.宽度小于intrinsic Content Size的默认大小,Content Compression Resistance起作用
(1) 宽度约束为750时,Content Compression Resistance Priority的Horizontal 大于750时,橙色方框为实际展现的效果。宽度为intrinsic Content Size的默认大小。控件label不会被压缩。

这里写图片描述
其中宽度约束的约束优先级为750,Content Compression Resistance Priority的Horizontal的优先级为751.

(2)宽度约束为750时,Content Compression Resistance Priority的Horizontal <750时,橙色方框为实际展现的效果。宽度为宽度约束大小。控件label会被压缩
这里写图片描述

其中宽度约束的约束优先级为750,Content Compression Resistance Priority的Horizontal的优先级为749

二 宽度大于intrinsic Content Size的默认大小,Content Hugging起作用
(1)宽度约束为251时,Content Hugging的Horizontal 大于251时,橙色方框为实际展现的效果。实际宽度为intrinsic Content Size的默认大小。控件label不会被拉伸。
这里写图片描述
其中宽度约束的约束优先级为251,Content Compression Resistance Priority的Horizontal的优先级为252.
(2)宽度约束为251时,Content Compression Resistance Priority的Horizontal 小于251时,橙色方框为实际展现的效果。宽度为宽度约束大小。控件label会被拉伸
这里写图片描述
其中宽度约束的约束优先级为251,Content Compression Resistance Priority的Horizontal的优先级为250.
参考:
http://codingobjc.com/blog/2015/01/28/autolayoutzhong-de-content-compression-resistancehe-content-huggingdao-di-shi-shi-yao-yi-si/

版权声明:本文为博主原创文章,欢迎转载。

AutoLayout中的Content Hugging 和 Content Compression Resistance

iOS6中引入了AutoLayout,极大的方便了UI元素的布局,现在已经过去一年了,并且大部分设备的系统也已经升级到了iOS6,是时候要使用此项技术了。 在AutoLayout的学习中有两个概念官...

对Auto Layout中的Content Compression Resistance和Content Hugging的总结

转自---- 这篇讲的很通俗易懂,消灭盲点 http://codingobjc.com/blog/2015/01/28/autolayoutzhong-de-content-compression-r...

iOS AutoLayout中的Content Hugging 和 Content Compression Resistance优先级问题

关于autolayout的优先级的问题在网上已经有很多资料了,推荐一个:Autolayout中关于intrinsic content、相关优先级及其应用 这篇文章详细讲解了在使用storyboard中...

Xcode之Autolayout -- "Content Hugging"和"Content Compression Resistance"

"Content Hugging"和"Content Compression Resistance" 解析

Content Hugging Priority & Content Compression Resistance Priority 区别

AUTO LAYOUT MAGIC: CONTENT SIZING PRIORITIES September 15, 2015  by Hector Matos O...

iOS知识---针对多个显示内容空间不定内容长度的显示问题Content Hugging 和 Content Compression Resistance

在开发中有的时候回遇到一些比较操蛋的数据长度不定,但是需要用多个lable在同一行显示的问题,有的内容必须要显示全,有些则在到达一定长度之后剩余内容允许以...的形式省略显示。针对这样的问题需要借助A...

IOS Content Hugging 和 Content Compression Resistance

Content Hugging 和 Content Compression Resistance 这两个属性对有intrinsic content size的控件(例如button,label)...

约束高级属性Content Compression Resistance Priority和Content Hugging Priority

今天遇到的场景是如下图所示,在一个自定义View 的Xib里面,a,b,c三个label从上往下排,之间都有垂直方向的约束,,并且c和底部也有间距约束关系,但是由于业务需求,a控件有时候是hidden...

Content Compression Resistance和Content Hugging

本人转载自:http://codingobjc.com/blog/2015/01/28/autolayoutzhong-de-content-compression-resistancehe-cont...

iOS AutoLayout阅读笔记1----->Hugging Priority & Compression Resistance Priority

NOTE:现在开发周期越来越快,而且Apple也推崇用AutoLayout来进行开发,自己的项目也慢慢从纯代码过度到了IB,找了本书看看,记录下学习的点点滴滴 本次主要介绍下   instrinsic...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Content Compression Resistance和Content Hugging
举报原因:
原因补充:

(最多只允许输入30个字)