2014-04-18 116 views
0

与iOS的Xcode,我有一个画线。 我想立即删除它(或消失)。 我试着重复代码的颜色设置为清除(红色的测试),因为我的背景是网格模式。但我只画出最后一条彩线。 关于按顺序依次绘制线条的任何想法?画线然后删除它

{ 
UIBezierPath *path = [UIBezierPath bezierPath]; 
[path moveToPoint:CGPointMake(0.0,100.0)]; 
[path addLineToPoint:CGPointMake(150.0, 100.0)]; 
[path addLineToPoint:CGPointMake(155.0, 50.0)]; 
[path addLineToPoint:CGPointMake(160.0, 150.0)]; 
[path addLineToPoint:CGPointMake(165.0, 100.0)]; 
[path addLineToPoint:CGPointMake(350.0, 100.0)]; 


CAShapeLayer *pathLayer = [CAShapeLayer layer]; 
pathLayer.frame = self.view.bounds; 
pathLayer.path = path.CGPath; 
pathLayer.strokeColor = [[UIColor greenColor] CGColor]; 
pathLayer.fillColor = nil; 
pathLayer.lineWidth = 2.0f; 
pathLayer.lineJoin = kCALineJoinBevel; 

[self.view.layer addSublayer:pathLayer]; 

CABasicAnimation *pathAnimation = [CABasicAnimation animationWithKeyPath:@"strokeEnd"]; 
pathAnimation.duration = 1.0; 
pathAnimation.fromValue = [NSNumber numberWithFloat:0.0f]; 
pathAnimation.toValue = [NSNumber numberWithFloat:1.0f]; 
[pathLayer addAnimation:pathAnimation forKey:@"strokeEnd"]; 
} 

感谢

+0

见这个问题的答案的层上进出动画淡入:http://stackoverflow.com/questions/8707104/coreanimation-opacity-fade-in-and-out-animation-not-工作 – Jenn

+0

谢谢,但似乎无法进入链接中的任何cade没有很多错误。 '函数的隐式声明'CMTimeGetSeconds在C99中无效'&'隐式声明函数'CMTimeAdd'在C99中使用&'使用未声明的标识符'img''&'使用未声明的标识符'_timeline';你的意思是'时区'吗?' &'使用未声明的标识符'titleLayer'' – user2963333

回答

1

地址:

pathAnimation.autoreverses = true; 
    pathAnimation.removedOnCompletion = false; 
    pathAnimation.fillMode = kCAFillModeForwards; 

你也可能会想用动画的委托功能,在完成去除层。另外,如果你想在动画反转之前有一个延迟(甚至是轻微的),或者想以与反转动画不同的方式淡出它,你可以使用CAAnimationGroup在同一时间线上执行一系列动画。

+0

谢谢,但不能让这段代码做任何事,不管我放在哪里,对不起。不知道我做错了什么。 – user2963333

0

感谢您的帮助。 我设法找到并成功使用了“Core Animation”Apple文档中的代码。这是我第一次管理它。对不起,慢下来,一直在学习。我不得不用“pathLayer”替换“titleLayer”。我相信这会有助于一些建议。 再次感谢。

这是我的工作代码。在我上面张贴的代码之后,在最后一个大括号之前添加。

CABasicAnimation* fadeAnim = [CABasicAnimation animationWithKeyPath:@"opacity"]; 

fadeAnim.fromValue = [NSNumber numberWithFloat:1.0]; 

fadeAnim.toValue = [NSNumber numberWithFloat:0.0]; 

fadeAnim.duration = 1.5; 

[pathLayer addAnimation:fadeAnim forKey:@"opacity"]; 



// Change the actual data value in the layer to the final value. 

pathLayer.opacity = 0.0;