xcode IOS:用手指画一条线

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/8287421/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-09-14 22:33:52  来源:igfitidea点击:

IOS: draw a line with your finger

iosxcodedrawing

提问by cyclingIsBetter

I want to know what's the approach to draw a line with a finger in a white view. I want to do an artboard, and I want begin to understand how draw a simple line or a track done with a finger. How can I do it?

我想知道在白色视图中用手指画线的方法是什么。我想做一个画板,我想开始了解如何用手指绘制一条简单的线条或轨迹。我该怎么做?

回答by Anasuya

I have understood your problem. Please see the bellow code.It will use full for you.

我已经了解你的问题。请参阅下面的代码。它将为您使用完整。

-(void)intializeDrawImage
{
    drawImage = [[UIImageView alloc]initWithFrame:CGRectMake(0, 100, 320, 320)];
   [drawImage setBackgroundColor:[UIColor purpleColor]];
   [drawImage setUserInteractionEnabled:YES];
   [self.view addSubview:drawImage];
}
 - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
    NSLog(@"touchesBegan");
    UITouch *touch = [touches anyObject];
    CGPoint p = [touch locationInView:drawImage];
    startPoint = p;
}

- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
{
    NSLog(@"touchesMoved");
    UITouch *touch = [touches anyObject];
    CGPoint p = [touch locationInView:drawImage];
    [self drawLineFrom:startPoint endPoint:p];
}

- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
{
    [self touchesMoved:touches withEvent:event];
}

- (void)touchesCancelled:(NSSet *)touches withEvent:(UIEvent *)event
{
    [self touchesEnded:touches withEvent:event];
}

-(void)drawLineFrom:(CGPoint)from endPoint:(CGPoint)to
{
    drawImage.image = [UIImage imageNamed:@""];

    UIGraphicsBeginImageContext(drawImage.frame.size);
    [drawImage.image drawInRect:CGRectMake(0, 0, drawImage.frame.size.width, drawImage.frame.size.height)];
    [[UIColor greenColor] set];
    CGContextSetLineWidth(UIGraphicsGetCurrentContext(), 5.0f);
    CGContextMoveToPoint(UIGraphicsGetCurrentContext(), from.x, from.y);
    CGContextAddLineToPoint(UIGraphicsGetCurrentContext(), to.x , to.y);

    CGContextStrokePath(UIGraphicsGetCurrentContext());

    drawImage.image = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
 }