gpt4 book ai didi

iphone - 有没有办法从未完成的 UIView 动画中获取位置(或中心)状态?

转载 作者:太空狗 更新时间:2023-10-30 03:59:56 24 4
gpt4 key购买 nike

我有一个 UIView 正在做一个简单的动画。它将其 y 位置从 100 调整到 130,然后反转。我希望它不断重复,所以我将重复计数器设置为 999。根据用户输入,我想采用相同的 UIView 并调整 x 位置。这是通过另一个 UIView 动画完成的。问题是当第二个动画开始时,第一个动画(在 y 方向上从 100 到 130)突然结束(正如我读到的那样)。有没有办法在结束之前获得该 UIView 的 y 坐标的最终位置?理想情况下,我希望 UIView 保持在与我平移 x 坐标时相同的 y 位置。

总结:UIView 在 y 方向从 100-130 移动,反向并重复,直到收到用户输入。一旦接收到,动画就会被缩短并且 UIView 跳到 y=130。我想要一种方法来找出动画被缩短之前的最终 y 值是多少,所以当使用带有 x 平移的新动画时,UIView 不会跳到 130,而是保持在第一个时的相同位置动画结束。

我似乎看不到任何可以让您这样做的东西。在我看来,一旦您使用 UIView 设置了动画,那么它(以及所有当前状态更改)都不在您的手中,并且只会在动画完成并在指定位置“返回”到您的控制和可用性终点。这样对吗?任何见解将不胜感激。感谢您的宝贵时间。

最佳答案

您正在寻找“表示层”。

每个 UIView 都使用 Core Animation 层进行渲染,可从 UIView 的 layer 属性访问该层。

CALayer 有一个 presentationLayer方法,它返回一个 CALayer,表示“与当前显示的图层版本非常接近”。

因此,要获取 View 的当前位置:

CGRect currentViewFrame = [[myView.layer presentationLayer] frame];

关于iphone - 有没有办法从未完成的 UIView 动画中获取位置(或中心)状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2137821/

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