Implementieren Sie blockbasierte UIView-Animationsmethoden mit einer benutzerdefinierten Beschleunigungskurve neu

Das Fehlen von benutzerdefinierten Beschleunigungskurven in den blockbasierten Animationsmethoden von UIView führt zu einer Kernanimation, wenn fortgeschrittenere Kurven benötigt werden.

Eine Möglichkeit, dies mit einer Kategorie zu tunCAKeyframeAnimation wird diskutiert inWie erstelle ich eine benutzerdefinierte Beschleunigungsfunktion mit Core Animation?.

Um meinen Code sauber und wartbar zu halten, möchte ich noch einen Schritt weiter gehen und ihn neu implementierenUIViewBlockbasierte Methoden von und enthalten einen Block, der die Beschleunigungskurvenfunktion beschreibt. resultierende Kategorie aufUIView würde ungefähr so ​​aussehen:

+ (void)animateWithDuration:(NSTimeInterval)duration easingCurveFunction:(double(^)(double))function  animations:(void (^)(void))animations;

Hat jemand eine Idee, wie Apple seine blockbasierten Animationsmethoden implementiert?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage