ユーザーが頂点を指定するためにクリックを入力すると、一連の接続された線が描画されます。私は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);
}
}
予想どおり、画面に線が表示されます。私の問題は、ユーザーが最初のポイントを選択した後、画面に何もレンダリングされず、2 番目のポイントが入力されるまでシステムが最初のピックを取得したかどうかわからないままになることです。次のポイントが入力される前であっても、システムが最初のポイントをレンダリングすることを望みます。また、システムが視覚的に異なる方法で選択された各頂点をレンダリングするようにしたいと考えています。現在、頂点はレンダリングされておらず、線のみがレンダリングされています。CGContext にポイントをレンダリングするように依頼する方法はありますか? これらのポイントがレンダリングされるスタイルを指定する方法はありますか? ありがとう。