Stack View 大小变化无法可视化

Posted

技术标签:

【中文标题】Stack View 大小变化无法可视化【英文标题】:Stack View size change cannot be visualized 【发布时间】:2018-05-02 02:26:36 【问题描述】:

在一个基本上使用所有屏幕空间的常规 UIView 中,我放置了一个具有垂直和水平对齐的 Stack View,以及一个约束,使得里面的图像具有相同的大小。

因此,我期望一旦整个 Stack View 的大小发生变化,它仍然会居中,并且所有图像都将具有相同的大小。事实上,如果我添加一个约束来设置它的高度,一切都会很好地工作。

当我想以编程方式设置这个高度而不是作为约束时,问题就来了。为此,我只是这样做:

print(myStackview.frame.size)
myStackview.frame.size.height = 400
print(myStackview.frame.size)

从用户的角度来看,Stackview 绝对没有发生任何事情,但事实上,当我打印它的大小时,尺寸是不同的,它似乎可以工作。

我在 viewDidLoad 和 viewDidLayourSubviews 中写了这行代码,但什么也没发生。会是什么?

【问题讨论】:

【参考方案1】:

不要更改堆栈视图的框架。向堆栈视图添加高度约束并将其更改为常量。 您可以通过编程方式更改约束的常量值:

let heightConstraint = heightAnchor.constraint(equalToConstant: 200)
heightConstraint.isActive = true

//later in code
heightConstraint.constant = 400

【讨论】:

以上是关于Stack View 大小变化无法可视化的主要内容,如果未能解决你的问题,请参考以下文章

Android获取窗口可视区域大小: getWindowVisibleDisplayFrame()

JavaMVC模式

java复习2

「R」数据可视化15:倾斜图

Kibana:Waffle 可视化介绍 - Elastic Stack 8.1

Python 数据可视化教程 绘制精美的双 Y 轴折线图