2010-08-02 72 views
6

我有一个动画图像,直到您按下“停止”按钮。 该代码工作和所有,但图像返回到数组中的第一个图像。我如何添加一段代码来告诉它停在当前的图像上?在当前图像停止动画

- (void)viewDidLoad { 

    [super viewDidLoad]; 

    imageView.animationImages = [NSArray arrayWithObjects: 
          [UIImage imageNamed:@"a0001.png"], 
          [UIImage imageNamed:@"a0002.png"], 
          [UIImage imageNamed:@"a0003.png"], 
          [UIImage imageNamed:@"a0004.png"], 
          [UIImage imageNamed:@"a0005.png"], nil]; 

    imageView.animationDuration = 3.00; 
    imageView.animationRepeatCount = 0; 
    [imageView startAnimating]; 
    [self.view addSubview:imageView]; 
} 

- (IBAction)stopAni {  
    [imageView stopAnimating];  
} 

感谢


感谢院长,嘿,我需要你再次:对,现在我已经能够阻止它,我想,我可以让它继续在那里它已经停止动画??

回答

3

设置的UIImageView的图像属性为你想停在

- (IBAction)stopAni { 
    [imageView stopAnimating]; 
    [imageView setImage:[[imageView animationImages] objectAtIndex:currentFrame]; 
} 

当前帧中的一个就是动画的持续时间由您已经animatin的时间量除以(你会必须存储你开始动画自己的时间!)

+0

感谢deanWombourne:D – awlcs 2010-08-03 10:25:14

+0

嘿,但如何存储我开始动画的时间? – awlcs 2010-08-03 10:31:44

+1

类似于__startTime = [[NSDate date] timeIntervalSince1970]; __应该给你一个参考时间(作为NSTimeInterval)。您可以通过__NSTimeInterval duration = [[NSDate date] timeIntervalSince1970] - startTime; __ – deanWombourne 2010-08-03 10:52:16