2011-10-01 24 views
3

我试图冻结动画的最后一帧。下面的代码用于工作,但是在更新到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"]; 
+0

如果它不以您想要的方式行为,那么此代码如何表现? – rptwsthi

回答

7

我花40我的分钟解决您的问题,它只是这么简单:

有两种方式可以实现你想要什么:

  1. 设置你想要的图像在屏幕上作为default图像。
  2. 或只是这样做,

    //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]; 
    

你猜怎么着,它会开始工作,因为我已经测试它。 :)

+0

我刚刚尝试了类似的东西,它的工作原理。我把'animation.image = [UIImage imageNamed:@“watermelondrop16.png”];''在[[startAnimating]之前];' – mahboudz

+0

好吧,那真是太棒了:) :) – rptwsthi

+0

@rptwsthi我想添加fadein和fadeout动画到动画中的所有图像文件..我该怎么做?..你能帮助我吗? –

2
[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; 

}

这是显示图像跳跃的例子我厚,这可能帮助ü

0

您的代码看起来好像没什么问题,当我这样做,我通常设置除.image属性UIImageView之前我告诉UIImageView开始动画。另外,将[UIImage imageNamed:@"watermelondrop16.png"]添加到.animationImages阵列的末尾。也许这会解决你的问题。希望有助于!