gpt4 book ai didi

iOS Swift UIView 动画跳回到开头

转载 作者:行者123 更新时间:2023-12-01 19:31:54 27 4
gpt4 key购买 nike

我对 swift 很陌生,有一个小问题。我在互联网上搜索了几个小时,但找不到任何解决方案,所以这是我最后的希望!

我正在制作一个小游戏,里面有一个 UIView。我使用 UIView.animate() 将其动画到屏幕上的随机位置。问题是,当我用另一个 View 制作另一个动画时,之前的动画 View 会跳回到它在屏幕上的初始位置。

这是我用来为 View 设置动画的代码:

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 在 Storyboard 中被限制为 x:50 和 y:200,并且我为它设置动画,例如到 x:120,y:400,它可以找到并正确设置动画。但是当我按下暂停按钮时,点击时会有一点缩放动画,头骨会跳回到 x: 50, y: 200。

当我尝试为 View 约束的常量设置动画时,它只是跳跃并且根本没有动画:
UIView.animate(withDuration: 1.0, delay: 0.0, options: .curveEaseInOut, animations: {
self.skull_xConstraint.constant = xSkull
self.skull_yConstraint.constant = ySkull
}, completion: nil)

我真的不确定我做错了什么,也许是自动布局的问题,但就像我说的,我是 swift 新手,互联网也帮不了我。

所以提前感谢您的帮助!

最佳答案

您需要像这样在动画中布局 subview

      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)

关于iOS Swift UIView 动画跳回到开头,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62307702/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com