iOS 7 - Tastaturanimation
Ich versuche zu verstehen, die neue Tastatur animation in iOS 7.0 auf dem iPhone 5 Simulator. Ich möchte die Größe meiner UITableView
wenn die Tastatur erscheint, aber ich kann nicht die richtigen Animations-details.
Ich bin mit den Informationen aus der NSNotification
Objekt, wenn die Tastatur erscheint oder verschwindet.
Hier ist mein log:
Move keyboard from {{0, 920}, {320, 216}} to {{0, 352}, {320, 216}}
with duration: 0.400000
and animation curve: 7
UIViewAnimationCurveEaseInOut = 0
UIViewAnimationCurveEaseIn = 1
UIViewAnimationCurveEaseOut = 2
UIViewAnimationCurveLinear = 3
Animation-Kurve ist ein unbekannter Wert, was soll ich tun?
InformationsquelleAutor der Frage Paul Warkentin | 2013-09-23
Du musst angemeldet sein, um einen Kommentar abzugeben.
In iOS 7, die Tastatur nutzt eine neue, nicht dokumentierte animation Kurve. Während einige haben darauf hingewiesen, dass die Verwendung eines undokumentierten Wert für die animation option, die ich lieber verwenden die folgenden:
Während der block-basierten Animationen sind in der Empfehlung, die animation Kurve zurück von der Tastatur-Mitteilung ist ein
UIViewAnimationCurve
während die option würden Sie brauchen, um passieren, um block-basierte Animationen ist einUIViewAnimationOptions
. Mit der traditionellen UIView animation-Methoden können Sie Rohr Sie den Wert direkt in. Am wichtigsten ist, wird dieser die neue undokumentierte animation Kurve (integer-Wert 7) und die animation passen Sie die Tastatur. Und es funktioniert genauso gut auf iOS 6 und 7.InformationsquelleAutor der Antwort David Beck
Nun habe ich die Lösung gefunden. Die animation startet von dem Punkt
{0, 920}
zu{0, 352}
. Das problem war, dass dieUITableView
Objekt gestartet mit einer Größe von{160, 568}
also änderte ich die Größe derUITableView
zu{160, 920}
bevor die animation gestartet wurde.Bezüglich der unbekannten animation Kurve, ich nur setzen Sie den parameter auf
animationCurve << 16
zu umwandeln, es aus einer Sicht animationskurve zu einer Ansicht-animation-option.Der Wert ist nicht gleich linear, ease in, ease out und ease out animation Kurve.
Hier ist mein code:
und:
InformationsquelleAutor der Antwort Paul Warkentin
Können Sie
animateWithDuration
block-und set-Kurve drin. Es ist sauber und gut arbeiten.Happy coding!
UPDATE
Können Sie eine einfache Kategorie UIViewController von mir geschrieben https://github.com/Just-/UIViewController-KeyboardAnimation
InformationsquelleAutor der Antwort Anton Gaenko
Verwenden
UIKeyboardWillChangeFrameNotification
statt, da einige internationale Tastaturen, wie etwa die chinesische Tastatur, ändern Sie die Höhe während der Nutzung. Auch dieser code gibt Ihnen die richtigen Höhen für die Tastatur, auch im Querformat. (Hinweis: der code ist für Autolayout)InformationsquelleAutor der Antwort Jeffrey Sun
Verwenden die gleiche animation wie Tastatur hat, müssen Sie nutzen undokumentierte option Kurven.
Fand ich, dass tatsächlich Methode
animateWithDuration:delay:usingSpringWithDamping:initialSpringVelocity:options:animations:completion:
ist der neue Weg, dass alle Animationen in iOS7 und iOS8 jetzt. Sie machen nur richtige Dauer, Dämpfung und Geschwindigkeit, und Sie erhalten die gleiche Wirkung, aber auch Sie ändern können: Geschwindigkeit/Zeit.InformationsquelleAutor der Antwort invoodoo
Registrieren sich für die Benachrichtigung:
Reagieren, indem er eine änderung an den Rahmen.Herkunft.y der Ansicht.
InformationsquelleAutor der Antwort Michael Peterson