gpt4 book ai didi

ios - 多个灵活高度项目 - 如何设置自动布局优先级?

转载 作者:行者123 更新时间:2023-12-01 18:39:59 24 4
gpt4 key购买 nike

假设您有(例如)一个带有 的表格单元格布局。不止一个动态高度灵活的元素,
它们以明显的方式彼此垂直连接。
enter image description here
完成这项工作似乎非常困难,而且非常无证。
您会期望:您将抗压性设置为 所有可扩展项目到 751 .但这不起作用。
在随机实验之后,在我看来,令人惊讶的是你必须做这样的事情:
在 250 和 750 上有整体 View 的压缩/拥抱,
enter image description here
那么奇怪的是,对于示例中的三个 TextView ,优先级必须
……依次增加……
enter image description here
而且,我认为你必须让其中一个比整体 View “低一个”——在这个例子中,其中一个是 749。
很难/不可能找到确切的“公式”以使其始终如一地工作。
这到底是什么逻辑?它只是iOS中的一个纯粹的错误吗?
有没有人找到制作 的“正确公式”?号码 的可扩展产品在一个单元格中工作?

  • 三个 TextView 的优先级
  • 总体持有人观点的优先事项

  • 干杯

    最佳答案

    你的问题对我来说不是很清楚。但是,这是一个堆叠 TextView 的好方法(无论您是否使用堆栈 View 来约束它们都无关紧要):

    1.禁用所有UITextView的滚动年代:

    Disable scrolling in Identity Inspector

    原因:如果启用滚动,UITextView没有定义的 intrinsicContentSize .见 this answer .如果没有内在的内容大小,内容拥抱和抗压缩(“CHCR”)优先级就没有意义或效果。

    2. 为沿一个轴的每个 View 赋予 CHCR 不同的优先级:

    更准确地说:为沿一个轴与约束连接的所有 View 赋予不同的 CHCR 优先级,这些 View 沿该轴的大小不受限制(即,没有固定的宽度/高度约束)。

    在您的特定示例中,屏幕截图中显示的设置是正确的解决方案:
    三个 TextView 中的每一个都具有不同的内容拥抱和不同的抗压缩优先级。作为一般规则,您应该从默认值 (750/250) 开始,并且像您一样只稍微增加或减少它们。

    如果您使用带有自调整单元格的表格 View (通过设置其 estimatedItemSize ),CHCR 优先级在运行时将无关紧要,因为单元格将自动调整大小以容纳所有三个 TextView 的足够空间。您只需将这些优先级设置为“静音”Interface Builder。

    但是,如果您使用固定高度的表格 View 单元格,则 CHCR 优先级非常重要,因为它们决定

  • 如果单元格内没有足够的空间(它是具有最低 压缩阻力 优先级的 View )和
  • ,哪些 View 将首先收缩
  • 如果单元格内的空间大于 subview 实际需要的空间,哪些 View 将扩展(它是具有最低 内容的 View 拥抱 优先级)。

  • super View (“MV”)的 CHCR 优先级无关紧要,因为它通常只是一个没有定义 intrinsicContentSize 的容器 View 。任何一个。它的大小由您添加的内部和外部约束定义。

    有关 CHCR 优先级的更多信息,请参阅章节 Intrinsic Content Size。在自动布局指南中。

    关于ios - 多个灵活高度项目 - 如何设置自动布局优先级?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44770087/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com