![](/img/trans.png)
[英]iphone : remove CALayer when animation stop, CALayer flash before disappear
[英]iPhone CALayer animation
我正在繪制一個線條動畫,用一條線連接2個點。 這是我的代碼:
-(void) drawObject{
rootLayer = [CALayer layer];
rootLayer.frame = self.view.bounds;
[self.view.layer addSublayer:rootLayer];
lineStartPath = CGPathCreateMutable();
CGPathMoveToPoint(lineStartPath, nil, 160, 50);
CGPathAddLineToPoint(lineStartPath, nil, 160, 50);
CGPathCloseSubpath(lineStartPath);
lineEndPath = CGPathCreateMutable();
CGPathMoveToPoint(lineEndPath, nil, 160, 50);
CGPathAddLineToPoint(lineEndPath, nil, 160, 300);
CGPathCloseSubpath(lineEndPath);
shapeLayer = [CAShapeLayer layer];
shapeLayer.path = lineStartPath;
UIColor *strokeColor = [UIColor colorWithHue:0.557 saturation:0.55 brightness:0.96 alpha:1.0];
shapeLayer.strokeColor = strokeColor.CGColor;
shapeLayer.lineWidth = 3.0;
[rootLayer addSublayer:shapeLayer];
[self performSelector:@selector(startAnimation) withObject:nil afterDelay:1.0];
}
-(void) startAnimation{
CABasicAnimation *animation = [CABasicAnimation animationWithKeyPath:@"path"];
animation.duration = 0.5;
animation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionLinear];
animation.fromValue = (id)lineStartPath;
animation.toValue = (id)lineEndPath;
[shapeLayer addAnimation:animation forKey:@"animatePath"];
}
弱點是在動畫結束后,線條消失。 我希望在我的線之間繪制這兩點之后,id不會消失。 請給我一個提示。
嘗試添加
shapeLayer.path = lineEndPath;
在startAnimation
開始時。
在此視頻中對此進行了解釋: 會話424 - 實踐中的核心動畫, 2010年WWDC的第1部分 (大約38:00)。
並替換 [shapeLayer addAnimation:animation forKey:@"animatePath"];
用 [shapeLayer addAnimation:animation forKey:@"path"];
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.