当前位置: 首页 > 知识库问答 >
问题:

什么是默认的自动布局内容拥抱和内容抗压优先级值?

夏侯承恩
2023-03-14

我正在尝试调试自动布局问题,了解内容拥抱和内容压缩阻力优先级的默认值将有所帮助。

它们是什么?它们是否特定于特定组件?是否有常量可以用来引用它们?

关键字: UI布局优先级

共有1个答案

郎吉星
2023-03-14

这些值是自Xcode 7.3起的最新值。

当将一个组件拖到界面构建器中时,您将获得以下优先级。注意:< code>(250,750)代表水平< code>250,垂直< code>750。

+-------------------------+---------------+------------------------------+
|         Object          | Hugging (H,V) | Compression Resistance (H,V) |
+-------------------------+---------------+------------------------------+
| UIActivityIndicatorView | 750,750       | 750,750                      |
| UIButton                | 250,250       | 750,750                      |
| UIDatePicker            | 250,250       | 750,750                      |
| UIImageView             | 251,251       | 750,750                      |
| UILabel                 | 251,251       | 750,750                      |
| UIPageControl           | 250,250       | 750,750                      |
| UIPickerView            | 250,250       | 750,750                      |
| UIProgressView          | 250,750       | 750,750                      |
| UIScrollView            | 250,250       | 750,750                      |
| UISearchBar             | 250,250       | 750,750                      |
| UISegmentedControl      | 250,250       | 750,750                      |
| UISlider                | 250,250       | 750,750                      |
| UIStepper               | 750,750       | 750,750                      |
| UISwitch                | 750,750       | 750,750                      |
| UITabBar                | 250,250       | 750,750                      |
| UITextField             | 250,250       | 750,750                      |
| UITextView              | 250,250       | 750,750                      |
| UIToolbar               | 250,250       | 750,750                      |
| UIView                  | 250,250       | 750,750                      |
+-------------------------+---------------+------------------------------+

发现:

  • 所有对象都有 750,750 作为其内容压缩阻力优先级。
  • 大多数人有250,250作为他们的内容拥抱优先级。
  • UI图像视图UI标签都有251,251作为其内容拥抱优先级。
  • UI活动指示器视图UI步骤和UISwitch750,750作为其内容拥抱优先级。
  • UI进程视图250,750作为其内容拥抱优先级。

以编程方式创建对象时(例如UIButton()),您可以获得以下优先级。

+-------------------------+---------------+------------------------------+
|         Object          | Hugging (H,V) | Compression Resistance (H,V) |
+-------------------------+---------------+------------------------------+
| UIActivityIndicatorView | 750,750       | 750,750                      |
| UIButton                | 250,250       | 750,750                      |
| UIDatePicker            | 750,750       | 750,750                      |
| UIImageView             | 250,250       | 750,750                      |
| UILabel                 | 250,250       | 750,750                      |
| UIPageControl           | 750,750       | 750,750                      |
| UIPickerView            | 750,750       | 750,750                      |
| UIProgressView          | 250,750       | 750,750                      |
| UIScrollView            | 250,250       | 750,750                      |
| UISearchBar             | 250,750       | 750,750                      |
| UISegmentedControl      | 250,750       | 750,750                      |
| UISlider                | 250,750       | 750,750                      |
| UIStepper               | 750,750       | 750,750                      |
| UISwitch                | 750,750       | 750,750                      |
| UITabBar                | 250,750       | 750,750                      |
| UITextField             | 250,250       | 750,750                      |
| UITextView              | 250,250       | 750,750                      |
| UIToolbar               | 250,750       | 750,750                      |
| UIView                  | 250,250       | 750,750                      |
+-------------------------+---------------+------------------------------+

调查结果:

  • 对于以下对象,IB 实例化对象和以编程方式实例化的对象之间存在内容拥抱优先级差异:UIDate拾取器、UI图像视图、UI标签、UI页面控件、UI拾取器视图、UI搜索栏、UI分段控件、UI滑块和 UI工具栏。
+----------------------------------+-------+
|             Constant             | Value |
+----------------------------------+-------+
| UILayoutPriorityRequired         |  1000 |
| UILayoutPriorityDefaultHigh      |   750 |
| UILayoutPriorityDefaultLow       |   250 |
| UILayoutPriorityFittingSizeLevel |    50 |
+----------------------------------+-------+

当您添加约束(通过Interface Builder或以编程方式)时,其默认优先级为1000

 类似资料:
  • 有人能解释一下它们的用法和区别吗?

  • 我已经修改了问题,以提供更多的信息和明确。< br > 我想有一个动态的表格视图单元格,具有UITextView的灵活高度和可选的UIImageView。根据UITextView和可选的UIImageView的内容大小,可以收缩或扩展单元格。 这是我所期望的(如下图所示): 正常大小:文本视图的高度是固定的(例如77)。图像视图宽度和高度也是固定的(例如130,130) 当文本视图的内容大小减小时

  • 问题内容: 根据此答案:urllib2读取为Unicode 我必须获取内容类型才能更改为unicode。但是,某些网站没有“字符集”。 例如,此页面的[‘content-type’]是“ text / html”。我无法将其转换为unicode。 是否有默认的“编码”(当然是英文)…,以便在找不到任何内容的情况下可以使用它? 问题答案: 是否有默认的“编码”(当然是英文)…,以便在找不到任何内容的

  • 我试图在父视图的中心放置一个< code>UIImageView。图像必须保持其原始的长宽比,也不应该超过父母的界限。因此,横向图像应该受到父图像宽度的限制,纵向图像应该在保持原始比例的情况下占据尽可能多的垂直空间。 对于AutoLayout来说,听起来似乎是一个非常简单的任务,对吗?以下是我对< code>UIImageView的设置: 父级垂直居中 在父级中水平居中 图像视图.宽度 我还将<

  • 我有一个运行在上。 我使用来提供静态文件,即生成的包,但这是不相关的。 我想要实现的是: 关于我想提供。我能做到。 在我想为。 在我想提供。 最后两个,我做不到。当我进入或我收到了默认的nginx页面。 为了使事情更加混乱被完全注释掉。 此外,如果在的块中,我将替换为,我将获得该特定项目的服务,但是我将无法为另一个服务。 下面,我将向您展示我的nginx配置 谢谢你的帮助! 编辑 我找到的解决方案

  • 本文向大家介绍什么是用例内容?相关面试题,主要包含被问及什么是用例内容?时的应答技巧和注意事项,需要的朋友参考一下 主要分为三大部分:基本信息、用例主体、执行记录 基本信息:项目名称、功能模块名、用例设计人、测试执行人、功能特性、测试目的、预置条件、参考信息 用例主体:用例编号、测试对象、检查点、预置条件、用例说明、优先级、预期结果 执行记录:测试结果、缺陷编号、备注