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