Я рисую набор соединенных линий, когда пользователь нажимает кнопку мыши, чтобы указать вершины. Я создаю CGMutablePathRef
- (void)addPointToCGMPR: (CGPoint)p
forNewPolygon: (BOOL)newPoly
{
if (newPoly)
{
CGPathMoveToPoint(cgmpr, NULL, p.x, p.y);
}
else
{
CGPathAddLineToPoint(cgmpr, NULL, p.x, p.y);
}
[self setNeedsDisplay];
}
drawRect: затем вызывается после ввода каждой точки, и контекст CGMutablePathRef добавляется в CGContext для отображения
- (void)drawRect:(CGRect)rect
{
// Set up a context to display
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextAddPath(context, cgmpr);
CGContextSetLineWidth(context, 1);
CGContextStrokePath(context);
// If NOT empty then Close the context so that box comparison can occur later
if (!CGContextIsPathEmpty(context))
{
CGContextClosePath(context);
}
}
Как и следовало ожидать, на экране появляются линии. Моя проблема в том, что после того, как пользователь выбирает первую точку, на экране ничего не отображается, и пользователь не знает, получила ли система свой первый выбор, пока не будет введена вторая точка. Я хочу, чтобы система отображала первую точку еще до того, как будет введена следующая точка. Я также хотел бы, чтобы система визуализировала каждую из выбранных вершин визуально отличным образом - сейчас я не получаю визуализацию вершин, только линии. Есть ли способ попросить CGContext отображать точки? Есть ли способ указать стиль, в котором отображаются эти точки? Спасибо.