堆栈视图和内容拥抱优先级-意外行为

时间:2019-05-22 11:41:44

标签: ios swift uikit uistackview

我在集合视图单元格中有一个包含3个元素(2个图像视图和1个标签)的堆栈视图,如以下屏幕截图所示:

enter image description here 我要实现的目标是使标签占据所有可能的空白空间而不是图像视图,这就是xib中显示的内容。 从理论上讲,应该简单地在图像视图上使用更大的Content Hugging Priority值来实现以下目标,因为较高的值意味着我们不希望某个视图的大小大于其内容。

但是我从各种实验中得到的奇怪结果如下:

1无法正常工作

ImageViews上包含的内容:251

标签上包含的内容:250

enter image description here

2好

ImageViews上包含的内容:999

标签上包含的内容:250

enter image description here

因此,即使两种情况在理论上都应该以相同的方式工作(如在界面生成器中一样),事实是,在运行时它们不是!你知道为什么会这样吗?我错过了什么?谢谢!

PS:堆栈视图具有Distribution: fill和中心对齐方式

1 个答案:

答案 0 :(得分:0)

设置2张图片的宽度和高度限制

enter image description here

也不要忘记实施sizeForItemAt