Iphone 绘制自动擦除的动画线条

Iphone 绘制自动擦除的动画线条,iphone,ipad,drawing,line,draw,Iphone,Ipad,Drawing,Line,Draw,是否有人可以建议在以下情况下使用何种方法: 用户触摸屏幕,然后将手指从这一点拖开,并画出一条线,但当他们上下移动手指时,这条线会沿着他们的手指成一条直线 这个例子就像时钟的中心,分针固定在中心,用户在时钟上拖动另一端。分针作为一条永久的直线滑动,不会抹去它下面的细节 希望我解释对了 感谢一些指针只需保存开始拖动的点的x/y坐标,以及几毫秒后手指所在的点,然后计算方向向量 使用计算公式,始终只获取手指的x或y位置,并使用它计算对应的手指使用以下代码: - (void)drawRect:(CGRe

是否有人可以建议在以下情况下使用何种方法:

用户触摸屏幕,然后将手指从这一点拖开,并画出一条线,但当他们上下移动手指时,这条线会沿着他们的手指成一条直线

这个例子就像时钟的中心,分针固定在中心,用户在时钟上拖动另一端。分针作为一条永久的直线滑动,不会抹去它下面的细节

希望我解释对了


感谢一些指针

只需保存开始拖动的点的x/y坐标,以及几毫秒后手指所在的点,然后计算方向向量

使用计算公式,始终只获取手指的x或y位置,并使用它计算对应的手指

使用以下代码:

- (void)drawRect:(CGRect)rect {

    UIGraphicsBeginImageContext(self.frame.size);  
    CGContextSetAllowsAntialiasing(UIGraphicsGetCurrentContext(), YES);
    CGContextSetLineWidth(UIGraphicsGetCurrentContext(), 2.0);
    CGContextSetLineJoin(UIGraphicsGetCurrentContext(), kCGLineJoinMiter);

    CGContextSetRGBStrokeColor(UIGraphicsGetCurrentContext(), 1.0, 1.0, 1.0, 1.0);
    CGContextSetRGBFillColor(UIGraphicsGetCurrentContext(), 1.0, 1.0, 1.0, 1.0);
    CGContextBeginPath(UIGraphicsGetCurrentContext());
    CGContextMoveToPoint(UIGraphicsGetCurrentContext(), startPoint.x, startPoint.y);
    CGContextAddLineToPoint(UIGraphicsGetCurrentContext(), endPoint.x,endPoint.y);
    CGContextStrokePath(UIGraphicsGetCurrentContext());
    self.image = UIGraphicsGetImageFromCurrentImageContext();

   [self setNeedsDisplay];

 }

@乔,是的,我知道我误解了这个问题。没有阅读“删除并重新绘制到新手指位置”部分,谢谢您的回答,我已经使用了“开始触摸”和“移动触摸”,并在移动手指时绘制了一条线。然而,让我解释一下……触球从10,10开始,当我移动到10200时,线就画出来了。现在我不用抬起手指,就把手指移到100100。这条线以一个从右边引出的角度绘制。我需要的是,当我移动到100100时,从10开始的线,10向下延伸成一条直线到我的手指,就像时钟的指针一样,让下面的内容保持不变。谢谢!基本上,我正在尝试理解如何复制线条绘制和移动的特征,该线条在最初触摸时有一个固定的锚,并且随着手指从锚移动而增加长度,但也允许旋转。一个很好的例子是免费的iPhone应用程序wordsearch unlimited,它准确地显示了我正在尝试做的事情……;-)你必须学习石英才能画出直线。只需使用touchestarted在变量CGPoint中设置起点。在touchesMoved中,在另一个CGPoint变量中设置端点,然后使用setNeedsDisplay重新绘制线。您必须学习如何使用drawRect和setNeedsDisplay。