2012-04-08 16 views
6

Wie könnte ich eine UIImage bewegen von der Unterseite des Bildschirms an den oberen Rand des Bildschirms in 20 Sekunden (ca. 35 Pixel pro Sekunde) Ich meine nicht, Sie sollten es ziehen, aber Es sollte automatisch nach oben gehen. DankeVerschieben Sie ein uiimageview animierte

Antwort

18

Erstens ist apple doc Ihr Freund. Alle Informationen, die ich Ihnen hier gebe, sind davon abgeleitet. Apple bietet auch eine Menge Beispielcode, und Sie sollten auf jeden Fall einen Blick darauf werfen.

Die Möglichkeit, dies (einfach) zu erreichen, besteht in der Verwendung von UIView-Animationen. Angenommen, Sie haben eine UIImageView für Ihr Bild, können Sie die animateWithDuration:(NSTimeInterval)duration animations:... Methode verwenden.

Zum Beispiel:

[UIView animateWithDuration:10.0f animations:^{ 
    //Move the image view to 100, 100 over 10 seconds. 
    imageView.frame = CGRectMake(100.0f, 100.0f, imageView.frame.size.width, imageView.frame.size.height); 
}]; 

Sie könnten schicker erhalten, indem mehr und mehr Möglichkeiten, um die Animation hinzufügen, einen Abschluss Block bekommen, usw. Dies alles mit Variationen der ‚animateWithDuration‘ Methode erreicht wird. Es gibt jede Menge Tutorials zu UIView-Animationen und jede Menge Dokumentation.

Wenn Sie nicht wollen, Blöcke verwenden (die^{... code ...} Bit oben) können Sie Ihre Animation wie folgt ausführen können:

[UIView beginAnimations:nil context:nil]; 
[UIView setAnimationDuration:10.0f]; 
imageView.frame = ... 
[UIView commitAnimations]; 
+0

Dank Mann zu bekommen, die Sie wirklich. Hat mir dabei geholfen! Ich werde nach den Apfelproben suchen und dort Videos sehen! – Xcodeuser

+0

Dies ist definitiv nicht die Antwort. Ich frage mich, warum es ein akzeptiertes ist. –

+0

Moving Image View Animation ist was ich suche –

3

Wenn ich es verstehen Sie tun können, eine Animation des eigenen Objekts, versuchen Sie in diesem Fall die Beginanimation

... 
initial position 

[UIView beginAnimation]; 
[UIView setAnimationDuration:dim/35.]; 
[UIView setAnimationCurve:[UIViewAnimationCurveLinear]; 

your animation 

[UIView commitAnimations]; 
... 

mit dieser Berechnung dim/35 Berechnungen durch den zweiten Platz Animation 35px/s

+0

Danke Mann, du bist wirklich hilfreich! – Xcodeuser

Verwandte Themen