UIStackView水平压缩/拥抱问题需要最终项目拉伸以填充剩余宽度,但如果较大则不要压缩其他项目

问题描述

我在UICollectionViewCell中有一个水平堆栈视图。堆栈视图中有四个项目,前三个是专门的UILabel(称为“松散”,“ $?”,得分为75),我从不想压缩。最后一项是专用的UITextView,它可以列出任意数量用户定义标签,因此可以是很长的列表。

第一次使用该单元格时,它会正确布置所有内容

Correct layout

但是当单元被重新使用时,前两个项目中的一些将被压缩。这些是认设置的结果,但是我尝试了拥抱/压缩优先级的各种组合,但似乎从未获得正确的结果。我只是错误解决了这个问题?

Bad layout

编辑:一些设置信息:

stack view settings

stack view constraints

解决方法

如果我正确理解您的布局...

  • 松散”,“ $?”和“ 75 ”都是自定义UILabel
  • Shell ”“ A ”“ C ”等...是自定义{/ {1}}中的自定义字符/元素

目前尚不清楚,但是,如果“标记”太多而无法容纳在自定义文本视图的水平空间中,该怎么办。

无论如何,如果您希望前三个元素(自定义标签)始终按原样显示-不拉伸,不压缩...

使堆栈视图设置保持不变:

UITextView

并使用以下“内容优先级”设置(半透明的浅蓝色矩形是自定义文本视图的框架):

enter image description here