2011-12-17 15 views
9

Zastanawiam się, czy w ogóle istnieje animacja UIImage.Czy można animować obiekt UII?

Wiem, że UIImageViews można animować, ale czy jest jakiś sposób, aby to zrobić bezpośrednio w UIImage.

Może z Open GL ES czy czymś?

Czy są jeszcze inne sposoby na animowanie MPMediaItemArtwork?

Z góry dziękuję!

+0

Jakiego rodzaju animacji szukasz? Proste tłumaczenie i ruch? lub zmieniając wyświetlacze? – richerd

+0

Zasadniczo zmienia się wiele ramek, tak jak w przypadku .gif. Podobnie jak w przypadku pierwszego obrazu show1, a następnie image2, a następnie image3 itp. –

Odpowiedz

12

Tworzenie UIImageView i ustawić właściwość animationImages do tablicy UIImage s

Oto przykład:

NSArray *animationFrames = [NSArray arrayWithObjects: 
    [UIImage imageWithName:@"image1.png"], 
    [UIImage imageWithName:@"image2.png"], 
    nil]; 

UIImageView *animatedImageView = [[UIImageView alloc] init]; 
animatedImageView.animationImages = animationsFrame; 
[animatedImageView startAnimating]; 

Jeśli kierujesz iOS 5 można to zrobić bezpośrednio w UIImage bez UIImageView pomocą

+(UIImage *)animatedImageWithImages:(NSArray *)images duration:(NSTimeInterval)duration 

na przykład

[UIImage animatedImagesWithImages:animationFrames duration:10]; 
8

Jeśli masz na myśli animację z kilku obrazów, użyj tego kodu:

// create the view that will execute our animation 
UIImageView* YourImageView = [[UIImageView alloc] initWithFrame:self.view.frame]; 

// load all the frames of our animation 
YourImageView.animationImages = [NSArray arrayWithObjects:  
          [UIImage imageNamed:@"01.gif"], 
          [UIImage imageNamed:@"02.gif"], 
          [UIImage imageNamed:@"03.gif"], 
          [UIImage imageNamed:@"04.gif"], 
          [UIImage imageNamed:@"05.gif"], 
          [UIImage imageNamed:@"06.gif"], 
          [UIImage imageNamed:@"07.gif"], 
          [UIImage imageNamed:@"08.gif"], 
          [UIImage imageNamed:@"09.gif"], 
          [UIImage imageNamed:@"10.gif"], 
          [UIImage imageNamed:@"11.gif"], 
          [UIImage imageNamed:@"12.gif"], 
          [UIImage imageNamed:@"13.gif"], 
          [UIImage imageNamed:@"14.gif"], 
          [UIImage imageNamed:@"15.gif"], 
          [UIImage imageNamed:@"16.gif"], 
          [UIImage imageNamed:@"17.gif"], nil]; 

// all frames will execute in 1.75 seconds 
YourImageView.animationDuration = 1.75; 
// repeat the animation forever 
YourImageView.animationRepeatCount = 0; 
// start animating 
[YourImageView startAnimating]; 
// add the animation view to the main window 
[self.view addSubview:YourImageView]; 

Source

0

Można to wykorzystać.

arrayOfImages=[[NSMutableArray alloc]init]; 
for(int i=1;i<=54;i++) 
{ 
NSString *[email protected]"haKsequence.png"; 
NSString *changedString= [NSString stringWithFormat:@"%d", i]; 
NSString *stringWithoutSpaces = [nameResources  stringByReplacingOccurrencesOfString:@"K" withString:changedString]; 
[arrayOfImages addObject:(id)[UIImage imageNamed:stringWithoutSpaces].CGImage]; 
} 


self.view.userInteractionEnabled=NO; 
i1.hidden=YES; 
image1=[[UIImageView alloc]init]; 
image1.backgroundColor=[UIColor clearColor]; 
image1.frame = button.frame;//i1 is obshaped buttion 
[self.view addSubview:image1]; 
CAKeyframeAnimation *animation = [CAKeyframeAnimation animationWithKeyPath:@"contents"]; 
animation.calculationMode = kCAAnimationDiscrete; 
animation.duration = 1; 
animation.values = arrayOfMonkeyImages; 
[animation setDelegate:self]; 
animation.repeatCount=3; 
[animation setRemovedOnCompletion:YES]; 
[image1.layer addAnimation:animation forKey:@"animation"]; 
+0

dodaj także strukturę rdzenia kwarcowego. – alok

1

Sprawdź UIImage na +animatedImageWithImages:duration: i +animatedImageNamed:duration:.

Od UIImage Class Reference:

Tworzy i zwraca animowany obraz z istniejącego zestawu obrazów.

Ta metoda ładuje serię plików, dołączając serię liczb do nazwy pliku podstawowego podanej w parametrze nazwy. Na przykład, jeśli parametr nazwy miałby "image" jako jego zawartość, ta metoda próbowałaby ładować obrazy z plików o nazwach "image0", "image1" i tak dalej aż do "image1024". Wszystkie obrazy zawarte w animowanym obrazie powinny mieć ten sam rozmiar i skalę.

Powiązane problemy