Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/101.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 画一条线,然后删除它_Ios_Line_Draw - Fatal编程技术网

Ios 画一条线,然后删除它

Ios 画一条线,然后删除它,ios,line,draw,Ios,Line,Draw,使用Xcode for iOS,我为一条绘制的线设置了动画。 我希望几乎立即删除它(或逐渐消失)。 我试着重复代码,颜色设置为clear(测试时为红色),因为我的背景是网格图案。但我只画了最后一条颜色线。 有没有办法把这些线依次画出来 { UIBezierPath *path = [UIBezierPath bezierPath]; [path moveToPoint:CGPointMake(0.0,100.0)]; [path addLineToPoint:CGPointMake(150.0,

使用Xcode for iOS,我为一条绘制的线设置了动画。 我希望几乎立即删除它(或逐渐消失)。 我试着重复代码,颜色设置为clear(测试时为红色),因为我的背景是网格图案。但我只画了最后一条颜色线。 有没有办法把这些线依次画出来

{
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"];
}
谢谢

添加:

    pathAnimation.autoreverses = true;
    pathAnimation.removedOnCompletion = false;
    pathAnimation.fillMode = kCAFillModeForwards;
您可能还希望使用动画代理功能在完成时删除层

或者,如果您希望在动画反转之前有一个延迟(甚至很小),或者希望以与反转动画不同的方式淡出动画,则可以使用CAAnimationGroup在同一时间线上执行一系列动画。

感谢所有帮助。 我设法找到并成功地使用了苹果“核心动画”文档中的代码。这是我第一次做到这一点。对不起,我学得太慢了,一直在学习。我不得不用“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;

请参见在层上设置淡入淡出动画的答案:谢谢,但似乎无法在链接中输入任何cade而没有很多错误
函数“CMTimeGetSeconds”的隐式声明在C99中无效
&
函数的隐式声明
CMTimeAdd”在C99 `&
使用未声明的标识符“img”
&
使用未声明的标识符“\u timeline”中无效;你的意思是“时区”吗?&
使用未声明的标识符“titleLayer”`谢谢,但是不管我把代码放在哪里,都不能让它做任何事情,对不起。不知道我做错了什么。