繁体   English   中英

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

[英]How to change container view size with animation when embedded view size is changed?

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

我已经尝试过“ translatesAutoresizingMaskIntoConstraints = false”

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

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

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

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

已编辑

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

代码看起来像这样:

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

innerView的基础上添加outerView top, bottom, leading and trailing constraints 另外,向innerView添加height constraint

在此处输入图片说明

现在为innerViewheight constraint设置动画,

self.innerViewHeightConstraint.constant = 60.0
UIView.animate(withDuration: 0.3) {
    self.view.layoutIfNeeded()
}

在此处输入图片说明

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM