So animieren Sie einen UIBezierPath
möchte ich animieren, ein UIBezierPath ein Rechteck, ein Dreieck, nicht zu animieren, eine Ansicht, die auf einem Pfad animieren, aber der Pfad selbst, so dass es verwandelt sich von einer Form zu einer anderen. der Pfad wird Hinzugefügt, um einen CALayer
CAShapeLayer *maskLayer = [CAShapeLayer layer];
maskLayer.fillColor = [[UIColor whiteColor] CGColor];
maskLayer.path = [self getRectPath];
-(CGPathRef)getTrianglePath
{
UIBezierPath* triangle = [UIBezierPath bezierPath];
[triangle moveToPoint:CGPointZero];
[triangle addLineToPoint:CGPointMake(width(self.view),0)];
[triangle addLineToPoint:CGPointMake(0, height(self.view))];
[triangle closePath];
return [triangle CGPath];
}
-(CGPathRef)getRectPath
{
UIBezierPath*rect = [UIBezierPath bezierPathWithRect:self.view.frame];
return [rect CGPath];
}
InformationsquelleAutor der Frage Yogev Shelly | 2012-06-03
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich bin kein Experte auf CoreAnimation, aber Sie können definieren, eine
CABasicAnimation
wie folgtDie erste Zeile besagt, dass Sie wollen, definieren Sie eine animation, die Veränderungen der
path
Eigenschaft der Ebene. Die zweite Zeile besagt, dass die animation dauert fünf Sekunden und die Dritte Zeile gibt den Endzustand der animation. Schließlich, fügen wir die animation in der Ebene. Der Schlüssel ist eine eindeutige Kennung für die animation, also, wenn Sie hinzufügen, zwei Animationen mit dem gleichen Schlüssel, wird nur die Letzte berücksichtigt. Diese Taste kann auch verwendet werden, zu überschreiben, so genannte implizite Animationen. Es gibt ein paar Eigenschaften einesCALayer
die animiert werden, standardmäßig. Genauer gesagt, wenn Sie eine dieser Eigenschaften ändern, werden animiert, mit einer Dauer von 0,25.InformationsquelleAutor der Antwort Jan Christiansen