Мне нужно нарисовать линию на виде, и чтобы линия была прямой, несмотря ни на что, но динамической по длине

#iphone #ipad #dynamic #drawing #line

#iPhone #iPad #динамический #рисование #строка

Вопрос:

Хорошо, мне нужно реализовать простой измерительный инструмент для приложения для iPad, над которым я работаю. У меня нет никакого опыта в рисовании, поэтому я действительно испытываю трудности. Когда пользователь нажимает на вид (в режиме измерения), начинается начало строки. Затем мне нужно иметь возможность рисовать линию везде, где пользователь проводит пальцем, когда он проводит пальцем, и чтобы она тоже была прямой все время.

У меня есть логика, которая вычисляет расстояние между двумя точками, работая на основе двух UITapGestureRecognizers, но я думаю, что вместо этого мне нужно будет реализовать методы touchesBegan / Ended.

Как я могу нарисовать линию по мере перетаскивания пользователем и сделать так, чтобы она оставалась прямой все время?

Мне просто нужна точка в правильном направлении.

Спасибо!!

Ответ №1:

Посмотрите хороший учебник, подобный этому.

Переходите к разделу о рисовании линий:

 void draw1PxStroke(CGContextRef context, CGPoint startPoint, CGPoint endPoint, 
    CGColorRef color) {

    CGContextSaveGState(context);
    CGContextSetLineCap(context, kCGLineCapSquare);
    CGContextSetStrokeColorWithColor(context, color);
    CGContextSetLineWidth(context, 1.0);
    CGContextMoveToPoint(context, startPoint.x   0.5, startPoint.y   0.5);
    CGContextAddLineToPoint(context, endPoint.x   0.5, endPoint.y   0.5);
    CGContextStrokePath(context);
    CGContextRestoreGState(context);        

}
  

и затем вот вызов этого метода:

 // Add in color section
CGColorRef separatorColor = [UIColor colorWithRed:208.0/255.0 green:208.0/255.0 
    blue:208.0/255.0 alpha:1.0].CGColor;

// Add at bottom
CGPoint startPoint = CGPointMake(0, 0);
CGPoint endPoint = CGPointMake(100, 20);
draw1PxStroke(context, startPoint, endPoint, separatorColor);