更改视图大小并沿周围移动视图

时间:2019-07-17 19:17:39

标签: swift uiviewanimation

我有一个要更改动画大小的视图。该视图下面是我要相应移动的其他视图。

我创建了一个新项目,所以请简化此操作,以使此功能正常运行。在这个项目中,我只有viewOne,viewTwo和一个控制它的按钮。还有一个布尔值叫做“ blue”。

@IBAction func bttn() {
        if blue {
            blue = false
            UIView.animate(withDuration: 1) {
                self.viewOne.frame.size.height = 64
            }
        }else {
            blue =  true
            self.viewOne.frame.size.height = 100
        }
    }

当我点击按钮时,我希望viewOne的尺寸增加,而viewTwo的位置向下移动,因为视图的顶部和底部之间存在约束。

但是实际结果是viewOne增加了,但是viewTwo没有移动。

1 个答案:

答案 0 :(得分:1)

只有自动布局可以执行此操作,因为更改框架不会应用约束,因此您需要为view1创建一个高度出口

self.view1Height.constant = 64
UIView.animate(withDuration: 1) {
   self.view.layoutIfNeeded()
}