如何让UIView子类在Stack View中获取可用空间

时间:2017-02-15 06:36:15

标签: ios autolayout ios10 uistackview

作为我的UI的一部分,我有一个水平堆栈视图,其中包含两个垂直堆栈视图。第一个垂直包含两个标签。第二个垂直包含两个我自定义的UIView子类 - 让我们称它们为MyUIView。

+---------+-------------------+
| Label 1 |                ## |
| Label 2 |                ## |
+---------+-------------------+

我想要实现的目标(如果可能的话,IB)是水平堆栈的左侧大小为(最大的)标签的内在大小,右侧是所有可用的剩余宽度。也就是说MyUIViews应该扩展到那个宽度。因此,无论屏幕有多宽,我都会有“足够宽”的标签,而MyUIViews会接受其他标签。

然而无论我在IB和运行时尝试什么,MyUIViews的宽度都很小或不可见。

我怀疑问题是我的自定义视图没有内在的内容大小,但我不知道如何正确解决这个问题。我觉得水平堆栈应该设置为“Fill proportional”但是如何告诉MyUIViews“一路走来”?

1 个答案:

答案 0 :(得分:0)

我已经尝试并实现了相同的要求,但我对垂直堆栈视图的宽度没有任何问题。

我只是将 Hotizontal 内容压缩阻力优先级添加到第一个垂直堆栈的标签中查看 751 用于实现动态宽度。

enter image description here