gpt4 book ai didi

objective-c - 在动画帧更改后使用变换缩放 UIView 会导致 UIView 在缩放之前跳回到原始帧

转载 作者:行者123 更新时间:2023-11-29 04:12:52 25 4
gpt4 key购买 nike

我试图在移动 UIView (带动画)后缩放它(带动画)。问题是,当缩放动画开始时,它会跳回到原始位置。为什么?

[UIView animateWithDuration:t delay:0 options:UIViewAnimationOptionCurveEaseIn animations:^{
// Drop the ball

CGRect frame = coinView.frame;
frame.origin.y += d;

coinView.frame = frame;

coinView.shouldSparkle = NO;
} completion:^(BOOL finished) {
[UIView animateWithDuration:0.3 animations:^{
// Initial scale up for ball "poof"

coinView.transform = CGAffineTransformScale(coinView.transform, 1.5, 1.5);
} completion:^(BOOL finished) {
[UIView animateWithDuration:0.3 animations:^{
coinView.transform = CGAffineTransformScale(coinView.transform, 0.000001, 0.000001);
} completion:^(BOOL finished) {
[coinView removeFromSuperview];
}];
}];
}];

编辑:这就是我生成 d: 的方式

static CGFloat groundPositionY = 325;

CGRect convertedFrame = [coinView.superview convertRect:coinView.frame toView:self.view];

CGFloat d = groundPositionY - CGRectGetMaxY(convertedFrame);

EDIT2:好的,所以我将第二个 UIView 动画更改为以下内容,我发现跳跃(和比例向下)发生在第二个动画发生之前,即当 animateWithDuration:delay:options 时:animations:completion: 被调用。

[UIView animateWithDuration:5 delay:3 options:0 animations:^{
coinView.transform = CGAffineTransformScale(coinView.transform, 1.5, 1.5);
} completion:nil];

最佳答案

我测试了你的代码,它对我来说工作得很好。你如何生成你的d?它到底返回到哪个 block ?

关于objective-c - 在动画帧更改后使用变换缩放 UIView 会导致 UIView 在缩放之前跳回到原始帧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14162831/

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