冻结动画的最后一帧新代码?

发布于 2024-12-08 03:21:49 字数 1019 浏览 1 评论 0原文

我正在尝试冻结动画的最后一帧。以下代码曾经有效,但是在更新到 iOS 后它不再有效。我怎样才能编写这段代码以使最后一个图像保留在屏幕上?

animation.animationImages = [NSArray arrayWithObjects:

                             [UIImage imageNamed:@"watermelondrop2.png"],

                             [UIImage imageNamed:@"watermelondrop4.png"],

                             [UIImage imageNamed:@"watermelondrop6.png"],

                             [UIImage imageNamed:@"watermelondrop8.png"],

                             [UIImage imageNamed:@"watermelondrop10.png"],

                             [UIImage imageNamed:@"watermelondrop12.png"],

                             [UIImage imageNamed:@"watermelondrop14.png"],

                             [UIImage imageNamed:@"watermelondrop15.png"], nil];

    animation.animationDuration = .8;
    animation.animationRepeatCount = 1;
    [animation startAnimating];
    [self playwatermelondropsound];
    [self.view addSubview:animation];
    animation.image = [UIImage imageNamed:@"watermelondrop16.png"];

I'm trying to freeze the last frame of an animation. The following code used to work, however after an update to iOS it no longer works. How can I write this code so that the last image stays on the screen?

animation.animationImages = [NSArray arrayWithObjects:

                             [UIImage imageNamed:@"watermelondrop2.png"],

                             [UIImage imageNamed:@"watermelondrop4.png"],

                             [UIImage imageNamed:@"watermelondrop6.png"],

                             [UIImage imageNamed:@"watermelondrop8.png"],

                             [UIImage imageNamed:@"watermelondrop10.png"],

                             [UIImage imageNamed:@"watermelondrop12.png"],

                             [UIImage imageNamed:@"watermelondrop14.png"],

                             [UIImage imageNamed:@"watermelondrop15.png"], nil];

    animation.animationDuration = .8;
    animation.animationRepeatCount = 1;
    [animation startAnimating];
    [self playwatermelondropsound];
    [self.view addSubview:animation];
    animation.image = [UIImage imageNamed:@"watermelondrop16.png"];

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

指尖微凉心微凉 2024-12-15 03:21:49

我花了 40 分钟来解决您的问题,而且非常简单:

有两种方法可以实现您想要的效果:

  1. 将您想要在屏幕上显示的图像设置为默认图像。
  2. 或者只是这样做,

    //将最后一行移至第一行。  
    Animation.image = [UIImage imageNamed:@"watermelondrop16.png"];
    动画.animationImages = [NSArray arrayWithObjects:
                         [UIImage imageNamed:@"watermelondrop2.png"],
                         [UIImage imageNamed:@"watermelondrop4.png"],
                         [UIImage imageNamed:@"watermelondrop6.png"],
                         [UIImage imageNamed:@"watermelondrop8.png"],
                         [UIImage imageNamed:@"watermelondrop10.png"],
                         [UIImage imageNamed:@"watermelondrop12.png"],
                         [UIImage imageNamed:@"watermelondrop14.png"],
                         [UIImage imageNamed:@"watermelondrop15.png"], nil];
    
    动画.animationDuration = .8;
    动画.animationRepeatCount = 1;
    [动画开始动画];
    [自玩西瓜滴声音];
    [self.view addSubview:动画];
    

猜猜它会开始工作,因为我已经测试过它。 :)

I spend 40 my minutes to resolve your problem, and it was just so simple:

There are two way you can achieve what you want:

  1. Set the image you want on your screen as default image.
  2. or just do this,

    //make your last line to first line.  
    animation.image = [UIImage imageNamed:@"watermelondrop16.png"];
    animation.animationImages = [NSArray arrayWithObjects:
                         [UIImage imageNamed:@"watermelondrop2.png"],
                         [UIImage imageNamed:@"watermelondrop4.png"],
                         [UIImage imageNamed:@"watermelondrop6.png"],
                         [UIImage imageNamed:@"watermelondrop8.png"],
                         [UIImage imageNamed:@"watermelondrop10.png"],
                         [UIImage imageNamed:@"watermelondrop12.png"],
                         [UIImage imageNamed:@"watermelondrop14.png"],
                         [UIImage imageNamed:@"watermelondrop15.png"], nil];
    
    animation.animationDuration = .8;
    animation.animationRepeatCount = 1;
    [animation startAnimating];
    [self playwatermelondropsound];
    [self.view addSubview:animation];
    

And guess what it'll start working, as I have tested it. :)

伴梦长久 2024-12-15 03:21:49
[self cleanStance];
NSArray *imageArray = [[NSArray alloc] initWithObjects:
                       [UIImage imageNamed:@"jump1.png"],
                       [UIImage imageNamed:@"jump2.png"],
                       nil];    
self.player.animationImages = imageArray;
self.player.animationDuration = 0.3;
//self.player.contentMode = UIViewContentModeBottomLeft;
[self.view addSubview:self.player];
[self.player startAnimating];


- (void)cleanStance {
[self.player setImage:nil];
self.player.animationImages = nil;

是显示图像跳跃的示例,这可能会帮助你

[self cleanStance];
NSArray *imageArray = [[NSArray alloc] initWithObjects:
                       [UIImage imageNamed:@"jump1.png"],
                       [UIImage imageNamed:@"jump2.png"],
                       nil];    
self.player.animationImages = imageArray;
self.player.animationDuration = 0.3;
//self.player.contentMode = UIViewContentModeBottomLeft;
[self.view addSubview:self.player];
[self.player startAnimating];


- (void)cleanStance {
[self.player setImage:nil];
self.player.animationImages = nil;

}

This is the example to show the image jumping i thick this may help u

千柳 2024-12-15 03:21:49

你的代码对我来说看起来很好,除了当我这样做时,我通常设置 UIImageView.image 属性 BEFORE 我告诉 UIImageView 开始动画。另外,将 [UIImage imageNamed:@"watermelondrop16.png"] 添加到 .animationImages 数组的末尾。也许这会解决你的问题。希望有帮助!

Your code looks fine to me, except when I do it, I usually set the .image property of the UIImageView BEFORE I tell the UIImageView to start animating. Also, add [UIImage imageNamed:@"watermelondrop16.png"] to the end of your .animationImages array. Maybe that will fix your problem. Hope that Helps!

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文