Animieren eines Bildes anzeigen zu rutschen nach oben
Ich bin versucht zu machen, ein Bild anzeigen (logo
unten) schieben, nach oben 100 Pixel. Ich bin mit diesem code, aber nichts passiert:
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:3];
logo.center = CGPointMake(logo.center.x, logo.center.y - 100);
[UIView commitAnimations];
Dieser code ist in der viewDidLoad
Methode. Insbesondere die logo.center = ...
wird nicht funktionieren. Andere Dinge (wie die änderung der alpha ist). Vielleicht bin ich nicht mit dem richtigen code, um schieben Sie es nach oben?
- In der viewDidLoad-Methode. Sorry!
- Sind Sie mit autolayout?
- Vereinbart mit Rob, aus nur der code in deinem Beispiel scheint dies ein Problem mit dem Auto-Layout, die immer in der Art und Weise der animation. Wenn Sie Auto-Layout, haben Sie zu animieren, die Zwänge, anstatt explizit Einstellung der Rahmen.
- Ich denke, ich bin, obwohl ich bin mir nicht genau sicher, wie zu sagen. Wenn ja, wie würde ich mich über die Animation der Einschränkungen?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Für nicht-autolayout-storyboards/NIBs, dein code ist in Ordnung. Übrigens, es ist jetzt in der Regel empfohlen, dass Sie eine Animation durch Blöcke:
Oder, wenn Sie wollen, ein wenig mehr Kontrolle über die Optionen und ähnliches, die Sie verwenden können:
Aber dein code sollte funktionieren, wenn Sie nicht mit autolayout. Es ist nur so, dass die obige syntax wird bevorzugt für iOS 4 und höher.
Wenn Sie autolayout, Sie (a) erstellen Sie einen
IBOutlet
für Ihre vertikale Raum-Einschränkung (siehe unten), und dann (b) können Sie etwas tun:Hinzufügen eines
IBOutlet
für eine Einschränkung, einfach nur Einstellungen-ziehen Sie von dem Zwang zu Ihr .h in der assistant editor:Durch die Art und Weise, wenn Sie zu animieren, eine Einschränkung, die empfindlich auf irgendwelche anderen Einschränkungen, die Sie haben könnten, verknüpft mit der Bildansicht. Oft, wenn man etwas rechts unterhalb des Bildes, es wird seine Einschränkung, verbunden mit dem Bild, so dass Sie haben können, um sicherzustellen, dass Sie haben noch keine anderen Steuerelemente mit Einschränkungen zu deinem Bild (es sei denn, Sie wollen, um Sie zu bewegen, zu).
Können Sie sagen, wenn Sie autolayout, indem Sie Ihren storyboard oder NIB auswählen und dann die "Datei-Inspektor" (der ersten Registerkarte auf der rechten panel, oder Sie können ziehen Sie es durch drücken von option+Befehl+1 (die Zahl "1")):
Denken Sie daran, wenn Sie die Planung auf die Unterstützung von pre-iOS 6, stellen Sie sicher, schalten Sie "autolayout". Autolayout ist ein iOS 6 feature und funktioniert nicht auf älteren Versionen von iOS.
viewDidLoad
mehr arbeitet wie man es erwartet hätte, also habe ich wieder meinen code. Constraint-basierte Operationen trotzen intuition manchmal...layoutIfNeeded()
scheint zu funktionieren perfekt (auch für sichten, die mit dem autolayout).haben u versuchen