gpt4 book ai didi

iOS: +[UIView animateWithDuration:] 不使用持续时间

转载 作者:行者123 更新时间:2023-11-28 18:00:31 24 4
gpt4 key购买 nike

我正在尝试制作 View “落”到 iPad 屏幕底部的动画,最后有一点弹跳。

弹跳效果不错。我的问题是“下落”动画根本无法正常工作。

我希望动画是线性的。 (我知道;“下降”不是线性的,但我认为这对我来说很好。)它似乎在缓入缓出。更大的问题是我希望它在我指定的时间内完成。它不是。如果距离很小,比如 100 像素,则持续时间计算为 0.1 秒,看起来大约需要 0.1 秒。但是如果距离很大,比如 1000 像素,持续时间应该是 1 秒,但它会更长:大约 3 秒。

有什么想法吗?这是代码:

NSTimeInterval duration = (distanceToTravel / (float)1000);
NSLog(@"distance = %f, duration = %f", distanceToTravel, duration);
[UIView animateWithDuration:duration delay:0 options:(UIViewAnimationCurveLinear) animations:^ {
wpcvc.view.center = wpcvc.startingDragLocation;
} completion:^(BOOL finished) {
[UIView animateWithDuration:0.2 delay:0 options:( UIViewAnimationCurveEaseOut) animations:^ {
wpcvc.view.center = CGPointMake(wpcvc.startingDragLocation.x, wpcvc.startingDragLocation.y - 2);
} completion:^(BOOL finished2) {
[UIView animateWithDuration:0.2 delay:0 options:(UIViewAnimationCurveEaseIn) animations:^ {
wpcvc.view.center = wpcvc.startingDragLocation;
} completion:^(BOOL finished3) {
}];
}];
}];

感谢任何帮助!

最佳答案

你不应该为 UIView.animateWithDuration 使用 UIViewAnimationCurveLinear 选项

对于线性动画,您必须使用 UIViewAnimationOptions 的选项,在您的情况下是这个 UIViewAnimationOptionCurveLinear(请注意选项-差异):

[UIView animateWithDuration:duration delay:0 options:(UIViewAnimationOptionCurveLinear) animations:^ {
wpcvc.view.center = wpcvc.startingDragLocation;
} completion:^(BOOL finished) {
[UIView animateWithDuration:0.2 delay:0 options:( UIViewAnimationOptionCurveEaseOut) animations:^ {
wpcvc.view.center = CGPointMake(wpcvc.startingDragLocation.x, wpcvc.startingDragLocation.y - 2);
} completion:^(BOOL finished2) {
[UIView animateWithDuration:0.2 delay:0 options:(UIViewAnimationOptionCurveEaseIn) animations:^ {
wpcvc.view.center = wpcvc.startingDragLocation;
} completion:^(BOOL finished3) {
}];
}];
}];

关于iOS: +[UIView animateWithDuration:] 不使用持续时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9593160/

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