2013-07-25 78 views
3

有沒有辦法找出它的UIImage的動畫幀?當你啓動它時,你會給它一個animationImages數組,所以顯然必須在某處存儲當前圖像的索引。你知道我怎麼能找到這個?此外,有沒有辦法告訴UIImageView哪個框架開始動畫?確定UIImageView顯示哪個animationImages?

回答

3

我找不到無論是文檔的屬性,也不類傾銷後的UIKit可疑伊娃或私有方法,所以最好我能想到的是:

NSDate *startDate; // instance variable 

- (void)startAnimation 
{ 
    startDate = [NSDate date]; 
    [imageView startAnimating]; 
} 

- (int)currentImageIndex 
{ 
    NSTimeInterval elapsed = -1 * [startDate timeIntervalSinceNow]; 
    int nFrames = imageView.animationImages.count; 
    NSTimeInterval frameDuration = imageView.animationDuration/nFrames; 
    int current = elapsed/frameDuration; 
    return current % nFrames; 
} 

至於如何啓動在特定圖像上的動畫:使用NSMutableArray來存儲圖像,並旋轉陣列以使其第一個元素是您想要開始的圖像,然後重新設置圖像視圖的animationImages屬性。要旋轉NSMutableArray,請參閱this question的答案。