如何为部分离屏的 UIView 设置动画

How to animate a UIView partially offscreen

我有一个矩形 UIView,位于其 parent 视图(即屏幕的整个高度和宽度)的底部,我想在响应一个事件。我尝试了以下方法,但它只是将原点向上移动 100 并动画回到它开始的位置:

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

我也试过设置顶部约束并更改它,但它只会挤压视图并且它是 children。

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

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

这是奥特莱斯

    @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)