Animieren Sie die frame-Eigenschaft über CABasicAnimation

Ich versuche zu machen, eine genaue "übersetzung" dieser UIView block-basierte animation-code:

[UIView animateWithDuration:0.5
                      delay:0.0
                    options:UIViewAnimationOptionCurveEaseInOut
                 animations:^{
                               someView.frame = CGRect(0, 100, 200, 200);
                             }
                 completion:nil];

mit CABasicAnimation statt.

Ich bin mir völlig bewusst, dass die frame-Eigenschaft ist eigentlich eine Kombination von position, Grenzen und anchorPoint der darunter liegenden Schicht, wie es hier beschrieben wird: http://developer.apple.com/library/mac/#qa/qa1620/_index.html

... und ich schon ne Lösung wie das mit zwei CABasicAnimations eine Einstellung der position, eine für Grenzen und es funktioniert für diese eine view.

Das problem ist jedoch, dass ich Untersichten in meinem Blick. someView hat eine Untersicht des Typs UIScrollView, in dem ich Platz noch eine Untersicht Typ UIImageView. UIScrollView Untersicht hat autoresizingMask eingestellt UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight. Das funktioniert alles perfekt, wenn ich die UIView block-basierte version, aber wenn ich versuche mit CABasicAnimations die Untersichten start verhält sich unerwartet(D. H. in der Größe verändert, um falsche Breite). So scheint es autoresizingMask funktioniert nicht einwandfrei, wenn Sie CABasicAnimations. Mir ist auch aufgefallen, dass Untersichten nicht einen Anruf erhalten, um setFrame:, obwohl die frame-Eigenschaft der übergeordneten Ansicht ändern, nachdem die änderungen Ebene Lage und Grenzen gemacht werden.

Deshalb würde ich gerne wissen, was wäre der richtige code zu replizieren mit CABasicAnimation, dass das, was passiert, wenn eine verwendet UIView ' s animateWithDuration Methode.

Schreibe einen Kommentar