Мне нужно нарисовать линию на виде, и чтобы она была прямой, несмотря ни на что, но динамической по длине - PullRequest
0 голосов
/ 25 апреля 2011

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

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

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

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

Спасибо!!

1 Ответ

0 голосов
/ 25 апреля 2011

Ознакомьтесь с хорошим учебником, например this .

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

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);
...