steuerbare animation von CALayer

  • steuerbare animation von CALayer

    Hey,

    ich suche ne Lösung um Layer gesteuert zu animieren - zb aus dem Bild zu schieben.

    hat jemand ne Idee die flexible und eine Vielzahl von Effekten ermöglicht ?

    es soll über 2 slider gesteurt werden - 1 für die Effekt art und der 2 für den fortschritt

    thx
  • Dafür brauchst du in der Regel keine Animation: Du verknüpst den Sliderwert mit dem entsprechenden Zustand des Layers. Wenn der Nutzer den Slider bewegt, bewegt sich der Layer. Eine CA Animation ist da eher störend.

    Das kannst du dann sogar relativ einfach in eine automatische Animation umwandeln, indem du nur den Endwert an den Layer in einer CATransaction übergibst.

    BTW: Die Änderungen, bei denen der Layer dem Slider folgt, führst du am besten auch in einer Transaktion aus, damit vermeidest du implizite Animationen.
    „Meine Komplikation hatte eine Komplikation.“
  • Hey Macmoonshine,

    danke für den tipp - das bringt mich ein gutes stück weiter.

    das mit dem steuern über layer-timeoffset geht auch gut -

    was ich nicht verstehe - ich habe einen push con links nach recht - er wiederholt den layer aber beim schieben und so kommt des gleiche Bild erneut wenn der layer raus schiebt.

    vielen Dank

    C-Quellcode

    1. [self.layer removeAllAnimations];
    2. CATransition *transition = [CATransition animation];
    3. transition.duration = 1.0;
    4. transition.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
    5. transition.type = kCATransitionPush;
    6. transition.subtype = kCATransitionFromLeft;
    7. transition.removedOnCompletion = YES; // force removal of animation when completed.
    8. [self.layer addAnimation:transition forKey:nil];
    9. [CATransaction commit];
    10. self.layer.speed = 0.0;