gpt4 book ai didi

iphone - UIImageView 动画在最后一帧停止

转载 作者:行者123 更新时间:2023-12-03 21:22:50 25 4
gpt4 key购买 nike

我正在使用 UIImageView 的animationImages 来显示一秒内的一些帧。我想显示动画然后让它停留在最后一帧。在 OS 3.1.3 中,这可以很好地实现:

[self setAnimationRepeatCount:1];
[self setAnimationDuration:1];
[self startAnimating];
// auto set the last image in the frame
[self setImage:[UIImage imageNamed:[NSString stringWithFormat:@"frame-%d_29.png", self.frameSet]]];

动画完成后会显示图像。 OS 4 就没有这样的运气了。我尝试过设置 NSTimer 并在完成时设置静态帧,但有时使用该方法会出现明显的闪烁。有什么解决办法吗?

最佳答案

编辑

比之前的解决方案更好的是简单地切换启动和设置的顺序:

[self setImage:[UIImage imageNamed:[NSString stringWithFormat:@"frame-%d_29.png", self.frameSet]]];
[self startAnimating];

经过一番折腾后,我发现如果将延迟设置为 29/30 秒,即 ~0.97,NSTimer 解决方案实际上可以工作:

- (void)doAnimation
{
[self setAnimationRepeatCount:1];
[self setAnimationDuration:1];
[self startAnimating];
[NSTimer scheduledTimerWithTimeInterval:0.97f
target:self
selector:@selector(onTimer:)
userInfo:nil
repeats:NO];
}

- (void)onTimer:(NSTimer *)theTimer
{
[self stopAnimating];
[self setImage:[UIImage imageNamed:[NSString stringWithFormat:@"frame-%d_29.png", self.frameSet]]];
}

关于iphone - UIImageView 动画在最后一帧停止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3171618/

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