更改嵌入式视图大小时,如何通过动画更改容器视图大小?

时间:2019-07-03 08:50:40

标签: ios swift animation autolayout containers

我正在尝试以下情况。 1.容器具有嵌入式视图。 2.使用动画更改嵌入视图的高度后, 3.使用动画时,容器的高度也将更改为与嵌入视图的高度相同。

我已经尝试过“ translatesAutoresizingMaskIntoConstraints = false”

正在工作。.更改嵌入式视图大小时,容器视图大小也会更改。 但是,没有动画的情况下容器高度会更改。

更新嵌入式视图大小时,是否有任何适当的方法可以通过动画来更新容器视图大小?

2 个答案:

答案 0 :(得分:0)

您可以删除容器的宽度/高度限制,而只保留嵌入式视图的宽度/高度限制。因此,嵌入式视图将设置容器的高度/宽度。 然后您可以对嵌入的视图高度约束进行动画处理,并且容器高度也将更改为动画。

UI看起来像这样: 黑色是容器,粉红色是嵌入式视图

已编辑

如果您不受限制地工作,则可以通过CGAffineTransform对内容进行动画处理。如果您缩放containerView,嵌入式视图也将被缩放

代码如下:

UIView.animate(withDuration: 0.3) {
            containerView.transform = CGAffineTransform(scaleX: 0.5, y: 0.5)
}

答案 1 :(得分:0)

top, bottom, leading and trailing中的constraints innerViewouterView相加。另外,将height constraint添加到innerView

enter image description here

现在为height的{​​{1}} constraint设置动画,

innerView

enter image description here