Ich versuche ein einfaches und animiertes Kreisdiagramm mit CAShapeLayer
zu erstellen. Ich möchte, dass es von 0 bis zu einem angegebenen Prozentsatz animiert.
Um die Formebene zu erstellen, verwende ich:
%Vor%Dann animiere ich:
%Vor% Offensichtlich animiert das auf eine wirklich seltsame Art und Weise. Die Form wächst sozusagen in ihren Endzustand. Gibt es eine einfache Möglichkeit, diese Animation der Richtung des Kreises folgen zu lassen? Oder ist das eine Einschränkung von CAShapeLayer
Animationen?
Ich weiß, dass diese Frage schon lange beantwortet wurde, aber ich denke nicht, dass dies ein guter Fall für CAShapeLayer
und CAKeyframeAnimation
ist. Core Animation hat die Macht, Animations-Tweening für uns zu machen. Hier ist eine Klasse (mit einem Wrapping UIView
, wenn Sie möchten), die ich verwende, um den Effekt ziemlich gut zu erreichen.
Die Layer-Unterklasse ermöglicht implizite Animation für die progress-Eigenschaft, aber die View-Klasse umschließt ihren Setter in einer UIView
-Animationsmethode. Der interessante (und letztlich nützliche) Nebeneffekt der Verwendung einer Animation mit 0.0 Länge mit UIViewAnimationOptionBeginFromCurrentState
ist, dass jede Animation die vorherige aufhebt, was zu einem glatten, schnellen und hochfrequenten Kuchen führt, wie dies (animiert) und dies (nicht animiert, sondern inkrementiert).
DZRoundProgressView.h
DZRoundProgressView.m
Schnelle Kopie / Einfügen Schnelle Übersetzung von dieser ausgezeichneten Objective-C-Antwort .
%Vor%Tags und Links iphone ios core-animation ipad core-graphics