2012-06-27 42 views
0

我動畫使用數組有些相似圖片動畫形象使用數組

NSArray *weatherFrames = [NSArray array]; 
weatherFrames = [[NSArray alloc] initWithObjects: 
      [UIImage imageWithData:Data1], 
      [UIImage imageWithData:Data2], 
      [UIImage imageWithData:Data3], 
      [UIImage imageWithData:Data4], 
      [UIImage imageWithData:Data5],     
      nil]; 
weatherImage.animationImages = weatherFrames; 
weatherImage.animationDuration = 10.00; 
weatherImage.animationRepeatCount = 1; 
[weatherImage release]; 

我希望能夠做的就是暫停動畫,當有人觸發呼叫(即從IBAction爲)。這是可能的還是有更好的方法來做到這一點?

感謝

回答

0

我複製從答案here的解決方案。

-(void)pauseLayer:(CALayer*)layer 
{ 
    CFTimeInterval pausedTime = [layer convertTime:CACurrentMediaTime() fromLayer:nil]; 
    layer.speed = 0.0; 
    layer.timeOffset = pausedTime; 
} 

-(void)resumeLayer:(CALayer*)layer 
{ 
    CFTimeInterval pausedTime = [layer timeOffset]; 
    layer.speed = 1.0; 
    layer.timeOffset = 0.0; 
    layer.beginTime = 0.0; 
    CFTimeInterval timeSincePause = [layer convertTime:CACurrentMediaTime() fromLayer:nil] - pausedTime; 
    layer.beginTime = timeSincePause; 
} 

而得到的CALayer傳遞給pauseLayer功能,可以使用下面的代碼。

CALayer *player = ImageView.layer; 
[self pauseLayer:player];