Animation CAShapeLayer
Ich ein Diagramm zeichnen mit diesem code:
CAShapeLayer *curentGraph = [CAShapeLayer new];
CGMutablePathRef linePath = CGPathCreateMutable();
curentGraph.lineWidth = 3.0f;
curentGraph.fillColor = [[UIColor clearColor] CGColor];
curentGraph.strokeColor = [colorGraph CGColor];
for (NSValue *value in arrOfPoints) {
CGPoint pt = [value CGPointValue];
CGPathAddLineToPoint(linePath, NULL, pt.x,pt.y);
};
curentGraph.path = linePath;CGPathRelease(linePath);
[self.layer addSublayer:curentGraph];
und es sieht so aus
Aber ich habe ein problem. Ich brauche so animieren Sie die Grafik wie es scheint. Jeder Punkt sollte von position y = 0
zu y = pt.y
. Tun, wie Sie in die Grafik auf dieser Seite.
Wie kann ich animiere meine Grafik so?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hier ist ein
CAShapeLayer
Unterklasse, die es einem erlauben, Sie zu animieren, Ihrepath
implizit (ohne Angabe einerCABasicAnimation
):Schnittstelle:
Umsetzung:
Den
path
Eigenschaft auf CAShapeLayer ist animierbar. Dies bedeutet, dass Sie können erstellen Sie einen Pfad, in dem jeder y-Wert ist0.0
und das animieren von diesem Weg, um die eigentliche Grafik. Stellen Sie nur sicher, dass die Pfade haben die gleiche Anzahl von Punkten. Dies sollte einfach sein, da Sie bereits über die Schleife.Dann können Sie animieren, den Weg durch Schöpfung einer
CABasicAnimation
für die@"path"
- Taste.Für die animation benötigen Sie
strokeStart
undstrokeEnd
Eigenschaften CAShapeLayer.Siehe Beispiel
CAShapeLayer
animation in Ole Begemann blog-post.Dokumentation von
strokeStart
: