Я отслеживаю штрихи в своем представлении и создаю соответствующие линии в ассоциированном слое «холст» . точки накапливаются в CGPathRef и сохраняются в NSArray при касанииDidEnd времени.Как рисовать линии в кварцевом контексте, которые не связаны между собой?
в drawLayer время я рисую как путь тока и сохраненные пути следующим образом:
// draw the current line:
CGContextAddPath(ctx, path);
CGContextStrokePath(ctx);
NSLog(@"Canvas drawing path %@", path);
// draw the stored lines
for (NSMutableArray *arr in storedPaths) {
CGMutablePathRef aPath = CGPathCreateMutable();
// set up the path with the CGPointObjects
NSLog(@"Canvas drawing stored path");
BOOL inited = NO;
for (CGPointObject *thePt in arr) {
if (inited==NO) {
CGPathMoveToPoint(aPath, NULL, [thePt.x floatValue], [thePt.y floatValue]);
//CGContextMoveToPoint(ctx, [thePt.x floatValue], [thePt.y floatValue]);
inited = YES;
}
else {
CGPathAddLineToPoint(aPath, NULL, [thePt.x floatValue], [thePt.y floatValue]);
//CGContextAddLineToPoint(ctx, [thePt.x floatValue], [thePt.y floatValue]);
}
}
CGContextAddPath(ctx, aPath);
CGContextStrokePath(ctx);
// didn't help connected problem
//CGPathRelease(aPath);
}
Это работает, как ожидалось, кроме него соединяет конечную точку первой линии к начальной точке следующей строке, вместо оставляя их как бессвязные отдельные линии. Пример: пользователь рисует X, но получает X с двумя связанными конечными точками.
CGClosePath не похож на то, что я хочу. Любые предложения будут высоко ценится.