我有一个容器堆栈视图,它还有另外2个堆栈视图,可以将它们分别称为堆栈视图1和堆栈视图2。堆栈视图2具有带有某些标签的自定义UIView
。我的问题是,它有2个排列的子视图。该UIStackView
的轴是垂直的。这些子视图是自定义的UIView
。这些自定义视图可能包含文本或图像,并且这些自定义视图的高度尚未预定义,并且基于内容(即,基于文本的高度)。
我的问题是,即使我返回intrinsicContentSize
,我也无法同时显示两个视图。
如果我在width
中返回常数height
和intrinsicContentSize
,则会显示两个视图。
override var intrinsicContentSize: CGSize { let size = CGSize.init(width: 100, height: 100) return size }
在堆栈视图1中添加了自定义视图1和自定义视图2。在另一个容器堆栈视图中添加了堆栈视图1和堆栈视图2。
屏幕截图显示了此行为。
但是如果我基于intrinsicContentSize
的UITextView
(customView的子视图,我已禁用滚动)返回大小,则仅显示一个子视图,不显示另一个视图。
override var intrinsicContentSize: CGSize { let size = textView.intrinsicContentSize return size }
屏幕截图显示了此行为。
我想要这种fillProportionally
行为,但是我无法使其按我的意愿工作,即同时显示两个视图。根据文档,“ fillProportionally”按比例使用intrinsicContentSize
表示视图。但是为什么在我的情况下不起作用?
保存这些自定义视图的父视图的高度是恒定的。可以说它是300。如果view1占据了50个高度,view2占据了100个高度,那么我希望这两个子视图都按比例展开(基于它们各自的textview的高度),但是只显示了一个子视图,它占据了整个高度。
我一直被困在这里,不胜感激。
我有一个容器堆栈视图,它还有2个其他堆栈视图,可以将它们分别称为堆栈视图1和堆栈视图2。堆栈视图2具有一个带有某些标签的自定义UIView。我的问题是,它有2个排列的...
您可以使用属性检查器吐司分配来按比例填充: