我有一個要求動畫圖像。我有大量的圖像,這需要作爲視頻播放。在玩遊戲的時候,有時我需要更改一些圖片,因爲它們會在服務器上更新。所以玩耍應該會自動更新這個新的圖像。動態改變動畫中的圖像IOS
我試過使用UIImageView。我們無法控制動畫。 然後我嘗試CAKeyframeAnimation提供圖像數組值屬性。我可以播放和暫停動畫。但是在這裏我也不能在播放時動態改變圖像。
任何人都可以幫助我解決這個問題。
感謝 MIA
我有一個要求動畫圖像。我有大量的圖像,這需要作爲視頻播放。在玩遊戲的時候,有時我需要更改一些圖片,因爲它們會在服務器上更新。所以玩耍應該會自動更新這個新的圖像。動態改變動畫中的圖像IOS
我試過使用UIImageView。我們無法控制動畫。 然後我嘗試CAKeyframeAnimation提供圖像數組值屬性。我可以播放和暫停動畫。但是在這裏我也不能在播放時動態改變圖像。
任何人都可以幫助我解決這個問題。
感謝 MIA
上的UIImageView動畫系統是非常有限的。我建議你用say 2圖像視圖製作你自己的實現。
你會比改變一個imageview的形象和淡入和淡出使用UIView animateWithDuration
我已經寫了你的方法。請注意:我沒有測試過它。
它假定你有你的幀稱爲「框架」數組中,並有放置彼此稱爲「imgv1」和「imgv2」
-(void)performAnimationOfFrameAtIndex:(NSNumber*)indexNum
{
int index = [indexNum intValue];
if(index >= frames.count)
{
return;
}
UIImage *img = [frames objectAtIndex:index];
UIImageView *imgIn;
UIImageView *imgOut;
if(index % 2 == 0)
{
imgIn = imgv1;
imgOut = imgv2;
}
else {
imgIn = imgv2;
imgOut = imgv1;
}
imgIn.image = img;
[self.view sendSubviewToBack:imgIn];
[UIView animateWithDuration:0.1 animations:^{
imgIn.alpha = 1;
imgOut.alpha = 0;
} completion:^(BOOL finished) {
[self performSelectorOnMainThread:@selector(performAnimationOfFrameAtIndex:) withObject:[NSNumber numberWithInt:index+1] waitUntilDone:NO];
}];
}
使用兩UIImageViews
和交換他們的前兩名UIIMageView
。
如果您對「動畫」UIView
的引用較弱,請務必檢查動畫是否在完成塊中完成。否則,當您導航到另一個視圖時,您可能會遇到性能問題,對動畫方法的遞歸調用將繼續!
- (void)animateImagesAtIndex:(NSNumber *)imageIdx {
// Do something here
[UIView animateWithDuration:1 animations:^{
// Do swap
}
completion:^(BOOL finished) {
if (finished) {
[self animateImagesAtIndex:imageIdx];
}
}];
}
UIImageView支持一系列圖像的動畫。您只需使用圖像數組設置屬性animationImages,然後調用方法startAnimating和stopAnimating。
你的意思是如果我有100幀..我需要使用3個圖像視圖,並將第3個位置,然後替換這些圖像視圖中的下3個圖像等。你能否詳細說明一下? – mia 2012-04-19 05:22:20
看到我上面編輯的答案... – EsbenB 2012-04-19 12:10:50