当用户输入单击以指定顶点时,我正在绘制一组连接线。我正在构建一个 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 渲染点?有没有办法指定渲染这些点的样式?谢谢。