CGAffineTransform & CoreAnimation

  • CGAffineTransform & CoreAnimation

    Ich spiele mich nun seit einiger Zeit mit einem Problem herum, dass ich einfach nicht lösen kann:
    Es geht um ein simples UILabel. Dieses Label habe ich mithilfe von CGAffineTransform um 180°Grad gedreht.

    Quellcode

    1. CGAffineTransform rotateMe = CGAffineTransformMakeRotation(M_PI);
    2. [[self myLabel] setTransform:rotateMe];

    So weit so gut.Jetzt will ich allerdings eine Animation mit dem "implicit layer" dieses Views machen und zwar immer noch GEDREHT.

    Quellcode

    1. CAKeyframeAnimation *bounce = [CAKeyframeAnimation animationWithKeyPath:@"transform"];
    2. CATransform3D forward = CATransform3DMakeScale(1.8, 1.8, 1);
    3. CATransform3D back = CATransform3DMakeScale(1., 1.0, 1);
    4. CATransform3D forward2 = CATransform3DMakeScale(2.2, 2.2, 1);
    5. CATransform3D back2 = CATransform3DMakeScale(1.0, 1.0, 1);
    6. [bounce setValues:[NSArray arrayWithObjects:
    7. [NSValue valueWithCATransform3D:CATransform3DIdentity],
    8. [NSValue valueWithCATransform3D:forward],
    9. [NSValue valueWithCATransform3D:back],
    10. [NSValue valueWithCATransform3D:forward2],
    11. [NSValue valueWithCATransform3D:back2],
    12. [NSValue valueWithCATransform3D:CATransform3DIdentity],
    13. nil]];
    14. [bounce setDuration:1.0];
    15. [[[self myLabel] layer] addAnimation:bounce forKey:@"bounceAnimation"];
    Alles anzeigen

    Nun springt das Ganze allerdings wieder in die ursprüngliche View Ausrichtung zurück und wird nun für meine Verhältnisse verkehrt animiert.
    Nun habe ich schon einiges probiert aber ich finde weder eine logische Erklärung für dieses Verhalten noch eine Lösung für mein Problem.Würde mich über Antworten sehr freuen :)
  • joejohannesjoe schrieb:

    Nun springt das Ganze allerdings wieder in die ursprüngliche View Ausrichtung zurück und wird nun für meine Verhältnisse verkehrt animiert.

    Ich bin mir nicht sicher, ob die Layer- und View-Transformationen miteinander kompatibel sind. Die Animation setzt jedenfalls die neuen Transformationswerte und multipliziert sie nicht auf die bestehenden Transformationen drauf. Ich würde mal auf alle Transformationen die Rotation draufrechnen.
    „Meine Komplikation hatte eine Komplikation.“