如何在屏幕外部分制作UIView动画

时间:2018-10-25 12:52:27

标签: ios swift uiviewanimation

我有一个矩形UIView,位于其父视图的底部(即屏幕的整个高度和宽度),我想在响应事件后从屏幕的下方向下进行动画处理。我已经尝试了以下方法,但是它只是将原点上移了100个并设置了动画,使其返回到起点:

UIView.animate(withDuration: 1.0, 
               delay: 1.2, 
               options: .curveEaseIn, 
               animations: {
                    self.subview.frame.origin.y += 100
                }, completion: {})

我也尝试过设置一个顶部约束并更改它,但随后它只是挤压视图及其子视图。

2 个答案:

答案 0 :(得分:2)

为什么要使用self.view?它应该是您的子视图(rectangleView)。

UIView.animate(withDuration: 1.0, 
               delay: 1.2, 
               options: .curveEaseIn, 
               animations: {
                    self.subview.frame.origin.y += 100
                }, completion: {})

答案 1 :(得分:1)

这是网点

    @IBOutlet weak var topConstraint: NSLayoutConstraint!
    @IBOutlet weak var testview: UIView!

在要对按钮操作或用户交互进行动画处理的位置添加此动画块。

self.topConstraint.constant += 100
    UIView.animate(withDuration: 5.0,
                   delay: 10,
                   options: .curveEaseIn,
                   animations: {
                    self.testview.layoutIfNeeded()
    }, completion: nil)

enter image description here

enter image description here