gpt4 book ai didi

ios - 将一个 View 动画化为不同层次结构中的另一个 View

转载 作者:行者123 更新时间:2023-11-30 13:11:32 25 4
gpt4 key购买 nike

我有一个关键帧动画,在一个 View Controller 中效果很好。然后我将该代码复制到另一个类似的 VC 中。不同之处在于,这次在屏幕上移动的动画 View 更深了一层,嵌套在另一个 UIView 中。这似乎导致了坐标问题。

我得到这个目的地x点是这样的:

let last_Pos = destinationImg.superview?.convertPoint(destinationImg.frame.origin, toView: nil)

然后在关键帧中,我像这样设置 x:

self.animatedView.frame.origin.x = last_Pos!.x

我在原始 ViewController 和新 ViewController 中都打印了“last_Pos”。它得到相同的 x 值 465,所以这不是问题。我很确定我的问题是在第二个 VC 中,465 被应用于它嵌套的额外层/UIView。我研究了 this但还没有发现太多用 Swift 编写的内容,但似乎 Objective-C 有办法做到这一点。

我的问题是,如何获取这两个 View 同一层上的 x 值,以便我可以将一个 View 动画到另一个 View ?

最佳答案

如上所述,我试图获得“绝对”x 和 y 位置来为不同层次结构中的两个 View 设置动画。如果您不知道,当您检查frame.origin.x或frame.origin.y时,您将获得引用其父 View 的上下文x和y位置。我找不到有效的答案,并且没有人对此线程做出回应。

所以...我的答案更像是一个补丁修复程序,似乎在大多数情况下都能很好地工作:

我只是在界面生成器中添加了另一个 View 。

  • 我把它命名为“量尺”
  • 并使其不可见
  • 并确保它位于我的所有按钮下方,这样就不会阻挡按钮点击等。

对于自动布局约束,我将一端连接到动画应源自的 View ,并将另一端连接到我希望动画结束的 View 。神奇之处在于它会随着方向、iPhone、iPad 布局等的变化而改变宽度和高度。

然后,对于我的动画,我的所有代码所做的就是检查“测量棒”的宽度和高度,并使用这些值来更改 x 和 y。

希望这有帮助。

关于ios - 将一个 View 动画化为不同层次结构中的另一个 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38672275/

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