以编程方式更改堆栈视图中容器的高度

Posted

技术标签:

【中文标题】以编程方式更改堆栈视图中容器的高度【英文标题】:Programatically chaniging the height of containers in a stack view 【发布时间】:2019-04-15 12:13:26 【问题描述】:

我在垂直堆栈视图中有两个视图。我正在尝试制作条形图 - 底部视图是条形图,顶部视图是透明的。我需要这样做,以便对于图表上的每个条形,这两个视图都会改变大小,以便可以显示正确的条形。

我在代码中有以下约束来尝试实现这一点:

let heightConstraint = NSLayoutConstraint(item: topBars[0], attribute: 
NSLayoutConstraint.Attribute.height, relatedBy: 
NSLayoutConstraint.Relation.equal, toItem: bottomBars[0], attribute: NSLayoutConstraint.Attribute.height, multiplier: 2, constant: 0)
view.addConstraints([heightConstraint])

我的垂直堆栈视图设置为按比例填充。

我在这里做错了什么?

【问题讨论】:

出了什么问题?没有应用约束吗? 【参考方案1】:

首先

我建议使用ios Charts 而不是重新发明***

其次

如果您有兴趣,您可以详细了解他们是如何解决这个问题的,因为对我来说,堆栈视图似乎不是一个好的选择

但是如果你使用的是UIStackView

您可以隐藏UIStackView中的视图,它会自动隐藏。

view.isHidden = true 

【讨论】:

【参考方案2】:

您需要将垂直堆栈视图设置为填充,然后通常以相对于视图的乘数形式设置高度(这里 2nd view 的高度是相对于 1st view 设置的。 并且您可以隐藏 UIStackView 内的视图,它会自动隐藏

view.isHidden = true

【讨论】:

对不起,我没有得到你

以上是关于以编程方式更改堆栈视图中容器的高度的主要内容,如果未能解决你的问题,请参考以下文章

如何根据布局高度以编程方式更改视图高度

当父容器视图约束以编程方式更改时,UINavigationController 子视图不调整大小

动态表格视图单元格,以编程方式更改子视图高度

如何以编程方式更改 UICollectionView 页脚视图高度

如何以编程方式更改 stackView 内单个 UIView 的高度?

UIView(放置在滚动视图内)在以编程方式更改高度常量时不显示其子视图