UIStackview`fillProportionally`发行问题>>

问题描述 投票:1回答:1

我有一个容器堆栈视图,它还有另外2个堆栈视图,可以将它们分别称为堆栈视图1和堆栈视图2。堆栈视图2具有带有某些标签的自定义UIView。我的问题是,它有2个排列的子视图。该UIStackView的轴是垂直的。这些子视图是自定义的UIView。这些自定义视图可能包含文本或图像,并且这些自定义视图的高度尚未预定义,并且基于内容(即,基于文本的高度)。

我的问题是,即使我返回intrinsicContentSize,我也无法同时显示两个视图。

如果我在width中返回常数heightintrinsicContentSize,则会显示两个视图。

override var intrinsicContentSize: CGSize {
    let size = CGSize.init(width: 100, height: 100)
    return size
   }  

在堆栈视图1中添加了自定义视图1和自定义视图2。在另一个容器堆栈视图中添加了堆栈视图1和堆栈视图2。

屏幕截图显示了此行为。

with constant intrinsicContentSize

但是如果我基于intrinsicContentSizeUITextView(customView的子视图,我已禁用滚动)返回大小,则仅显示一个子视图,不显示另一个视图。

   override var intrinsicContentSize: CGSize {
       let size = textView.intrinsicContentSize
       return size
       }

屏幕截图显示了此行为。

with intrinsicContentSize of UItextView

我想要这种fillProportionally行为,但是我无法使其按我的意愿工作,即同时显示两个视图。根据文档,“ fillProportionally”按比例使用intrinsicContentSize表示视图。但是为什么在我的情况下不起作用?

保存这些自定义视图的父视图的高度是恒定的。可以说它是300。如果view1占据了50个高度,view2占据了100个高度,那么我希望这两个子视图都按比例展开(基于它们各自的textview的高度),但是只显示了一个子视图,它占据了整个高度。

我一直被困在这里,不胜感激。

我有一个容器堆栈视图,它还有2个其他堆栈视图,可以将它们分别称为堆栈视图1和堆栈视图2。堆栈视图2具有一个带有某些标签的自定义UIView。我的问题是,它有2个排列的...

ios swift uistackview
1个回答
-1
投票

您可以使用属性检查器吐司分配来按比例填充:

© www.soinside.com 2019 - 2024. All rights reserved.