将图像移至原点

问题描述 投票:0回答:2

我目前正在为Apple Development类的动画项目工作,我们正在其中移动ImageView并为其设置动画。我可以移动图像,但是我对如何将其返回到原始位置感到困惑,最好使用相同的按钮。移动动画的代码如下:

@IBAction func move(_ sender: Any) {

    UIView.animate(withDuration: 1, animations: {self.imageView.frame.origin.y -= 200
    }, completion: nil)

}
swift imageview jquery-animate move
2个回答
0
投票

注意:如果您有imageView约束的出口,请在动画而非帧期间更新约束值。

1)首先创建变量

var isBack : Bool = false

现在进行按钮操作:

@IBAction func move(_ sender: Any) {

   if  isBack == false
   {
        isBack = true
        UIView.animate(withDuration: 1, animations: {self.imageView.frame.origin.y -= 200
       }, completion: nil)
   }
   else
   {
        isBack = false
        UIView.animate(withDuration: 1, animations: {self.imageView.frame.origin.y += 200
       }, completion: nil)
   }

}

0
投票

声明一个变量,该变量将在加载视图时保存y原点的值。并声明一个变量,该变量将检查imageview当前是否在设置动画。

var onLoadFrameYOrigin : CGFloat = 0.0
var isAnimating : Bool = false


override func viewDidLoad() {
    super.viewDidLoad()

    onLoadFrameYOrigin = self.searchView.frame.origin.y
}

@IBAction func move(_ sender: Any) {
    if !isAnimating {
        self.isAnimating = true
        UIView.animate(withDuration: 1.0, animations: {
            if self.onLoadFrameYOrigin == self.imageView.frame.origin.y {
                self.imageView.frame.origin.y -= 200
            } else {
                self.imageView.frame.origin.y = onLoadFrameYOrigin
            }
        }) { _ in
            self.isAnimating = false
        }
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.