我对swift很陌生,有一个小问题。我在网上找了好几个小时,都没有找到任何解决办法,所以这是我最后的希望了!我正在做一个小游戏,在里面我有一个UIView。我正在做一个小游戏,在里面我有一个UIView。我使用UIView.animate()将它动画到屏幕上的随机位置。问题是,当我用另一个视图做另一个动画时,之前的动画视图又跳回了它在屏幕上的初始位置。这是我用来给视图做动画的代码。
UIView.animate(withDuration: 1.0, delay: 0.0, options: .curveEaseInOut, animations: {
self.skull.frame = CGRect(x: xSkull, y: ySkull, width: self.skull.frame.size.width, height: self.skull.frame.size.height)
}, completion: nil)
例如,如果一个叫头骨的UIView在故事板上被限制在x: 50和y: 200的位置,我就把它做成动画,比如说x: 120,y: 例如,x: 120, y: 400, 它就能找到并正确地制作动画. 但是当我按下暂停按钮时,当点击时有一个小的比例动画,头骨又跳回x:50,y:200。 当我试图对视图的约束条件进行动画时,它只是跳动,根本没有动画。
UIView.animate(withDuration: 1.0, delay: 0.0, options: .curveEaseInOut, animations: {
self.skull_xConstraint.constant = xSkull
self.skull_yConstraint.constant = ySkull
}, completion: nil)
我真的不知道我做错了什么 也许是自动布局的问题 但就像我说的,我是个新的swift,互联网也帮不上忙 所以先谢谢大家的帮助!
你需要在动画中布局子视图,像这样吗?
self.skull_xConstraint.constant = xSkull
self.skull_yConstraint.constant = ySkull
UIView.animate(withDuration: 1.0, delay: 0.0, options: .curveEaseInOut, animations: {
self.view.layoutIfNeeded()
}, completion: nil)