2016-04-11 10 views
0

Wie gibt man 'Image' Animationen zu multiple images um Different Locations in einem 'UIView'?Wie kann man Bildanimationen an verschiedenen Orten in einer UIView an mehrere Bilder übertragen?

1) Ich hatte 3 Bilder.

2) Ich möchte animatedly diese 3 Images bei 3 different locations hinzufügen, bedeutet eine nach der anderen Bilder hinzufügen animatedly mit some duration ??

Wie kann ich das erreichen?

+0

Sie benötigen uiimageview Animation schnell zu langsam für Perticular Bereich? – Shreyank

+2

UIView animateWithDuration? –

+0

@Shreyank .... Nicht schnell zu langsam ... aber wir wollen 3 Bilder nacheinander nach einiger Zeit an 3 verschiedenen Orten hinzufügen ... ein Bild an einer Stelle, nachdem das Bild platziert wurde, nächstes Bild animieren und kommen in den nächsten Ort wie das –

Antwort

0

Wie pro Ihre Anforderung möchten Sie Bild eines nach dem anderen

zu diesem Zweck Verwendung Abschluss Block ersten Bildanimation animieren zweites Bild zu animieren und so weiter wie unter Code

UIImageView *imgView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:[NSString stringWithFormat:@"-t%d",1]]]; 
[imgView setBackgroundColor:[UIColor redColor]]; 

UIImageView *imgView2 = [[UIImageView alloc] initWithImage:[UIImage imageNamed:[NSString stringWithFormat:@"-t%d",2]]]; 
[imgView2 setBackgroundColor:[UIColor redColor]]; 

UIImageView *imgView3 = [[UIImageView alloc] initWithImage:[UIImage imageNamed:[NSString stringWithFormat:@"-t%d",2]]]; 
[imgView3 setBackgroundColor:[UIColor redColor]]; 

[self.view addSubview:imgView]; 
[self.view addSubview:imgView2]; 
[self.view addSubview:imgView3]; 

[UIView animateWithDuration:0.5 delay:1.0 options:UIViewAnimationOptionLayoutSubviews animations:^{ 

    [imgView setFrame:CGRectMake(0, 0, 150, 150)]; 


} completion:^(BOOL finished) { 

    [UIView animateWithDuration:0.5 delay:1.0 options:UIViewAnimationOptionLayoutSubviews animations:^{ 
     [imgView2 setFrame:CGRectMake(self.view.frame.size.width - 150, 0, 150, 150)]; 

    } completion:^(BOOL finished) { 

     [UIView animateWithDuration:0.5 delay:1.0 options:UIViewAnimationOptionLayoutSubviews animations:^{ 
      [imgView3 setFrame:CGRectMake(0, self.view.frame.size.height - 150, 150, 150)]; 

     } completion:^(BOOL finished) { 


     }]; 

    }]; 

}]; 

Es wird Hilfe Sie :)

+0

@ PKT .... Ihr Code funktioniert gut für mich –

0

Können sagen, 3 Ansichten sind _redView, _greenView und _blueView Check-out folgenden Verfahren diejenigen von einem zum anderen Ort zu bewegen. Ich habe einen zufälligen Ort verwendet, den Sie angeben können, wenn Sie möchten. Here you can have working example of it Wählen Sie einfach ViewAnimationsTest Projekt des Arbeitsbereichs und ausführen.

- (int) randomFloatingGenerator : (int) max{ 
    return arc4random() % max; 
} 

- (void) animate3Views { 
    [UIView animateWithDuration:2.0 
        animations:^{ 
         _redView.transform = CGAffineTransformMakeTranslation([self randomFloatingGenerator : 270], [self randomFloatingGenerator:480]); 
         _greenView.transform = CGAffineTransformMakeTranslation([self randomFloatingGenerator : 270], [self randomFloatingGenerator:480]); 
         _blueView.transform = CGAffineTransformMakeTranslation([self randomFloatingGenerator : 270], [self randomFloatingGenerator:480]); 

        } completion:^(BOOL finished) { 
         [self animate3Views];//if don;t want continuous translation remove this line 
        }]; 
} 
+0

Hier können Sie arbeiten Beispiel dafür, https://github.com/rptwsthi/DevelopmentSupportWorkspace wählen Sie einfach ViewAnimationsTest-Projekt von der Arbeitsplatz und Lauf. – rptwsthi

+0

@rptwsthi ... in diesem Beispiel, können Sie mir sagen, welche ich verwenden muss –

0

Wahrscheinlich ist der einfachste Weg, dies zu tun, 3 Animationen zu verwenden, die mit Verzögerung aufgerufen werden.

for (NSInteger i = 0; i < 3; i++) { 
     UIView *view = myViews[i]; 
     CGRect frame = [self frameForViewAtIndex: i]; 
     NSTimeInterval duration = 0.5; 
     NSTimeInterval delay = i * 0.5; 

     [UIView animateWithDuration: duration delay: delay options: 0 animations: ^{ 
      view.frame = frame; 
     } completion: nil]; 
    } 

Wo myViews Array von Ansichten ist animiert werden, frameForViewAtIndex: ist die Methode, die für entsprechende Rahmen Ansicht zurückgibt.

+0

@roselovely Ist etwas in diesem Stück Code nicht klar? –

+0

.... Können Sie sagen, wie Sie Bilder hinzufügen –

Verwandte Themen