У меня есть вид, в котором я рисую пунктирную линию, когда пользователь перемещает палец по экрану iPad / iPhone.Я рисую линию между точкой, сохраненной как LastLocation, и точкой, которая является CurrentLocation.Чертежи должны быть постоянными на экране.Это происходит каждый раз, когда вызывается событие touchMoved, и в итоге я могу нарисовать пунктирную трассировку, где человек перетащил палец ... как приложение для рисования.
У меня есть функция, которая вызываетсяэто делает следующее, когда происходит событие касания.Представление содержит UIImageView с именем drawImage.Я использую UIImageView как средство сохранения нарисованных линий.Это явно не то, как люди обычно рисуют приложения, так как это довольно медленно.Любое понимание лучшего способа сделать постоянное рисование с использованием вызовов CGContextRef будет приветствоваться.
/* Enter bitmap graphics drawing context */
UIGraphicsBeginImageContext(frame.size);
/* Draw the previous frame back in to the bitmap graphics context */
[drawImage.image drawInRect:CGRectMake(0, 0, drawImage.frame.size.width, drawImage.frame.size.height)]; //originally self.frame.size.width, self.frame.size.height)];
/* Draw the new line */
CGContextRef ctx = UIGraphicsGetCurrentContext();
/* Set line draw color to green, rounded cap end and width of 5 */
CGContextSetLineDash(ctx, 0, dashPattern, 2);
CGContextSetStrokeColorWithColor(ctx, color);
CGContextSetLineCap(ctx, kCGLineCapRound); //kCGLineCapSquare, kCGLineCapButt, kCGLineCapRound
CGContextSetLineWidth(ctx, 5.0); // for size
/* Start the new path point */
CGContextMoveToPoint(ctx, LastLocation.x, LastLocation.y);
CGContextAddLineToPoint(ctx, Current.x, Current.y);
CGContextStrokePath(ctx);
/* Push the updated graphics back to the image */
drawImage.image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
Вызов drawImage.image drawInRect является чрезвычайно медленным и по сути перерисовывает все изображение.
Есть ли более быстрый способ сделать это?Я видел такой код для рисования в нескольких местах в блогах для рисования, но он немного медленный.Хотелось бы услышать некоторые мысли по этой теме.