1

私には習慣がありますUIView。指が触れたときに線と点を動かし続けます。次に、この方法でポイントを作成CGPathします:</p>

- (void)makeCGPath
{
CGMutablePathRef path = CGPathCreateMutable();

if (lines&& lines.count>0)
{
    for (int i = 0; i < lines.count; i++)
    {
        CGMutablePathRef linePath = CGPathCreateMutable();

        NSArray *tempArray = [lines objectAtIndex:i];
        CGPoint p = [[tempArray objectAtIndex:0]CGPointValue];
        CGPathMoveToPoint(linePath, NULL, p.x, p.y);
        for (int j = 1; j < tempArray.count; j++)
        {
            p = [[tempArray objectAtIndex:j]CGPointValue];
            CGPathAddLineToPoint(linePath, NULL, p.x, p.y);
        }
        CGPathAddPath(path, NULL, linePath);
        CGPathRelease(linePath);



    }
}
if (points&& points.count > 0)
{
    CGMutablePathRef pointPath = CGPathCreateMutable();
    CGPoint p = [[points objectAtIndex:0]CGPointValue];
    CGPathMoveToPoint(pointPath, NULL, p.x, p.y);
    for (int i = 1; i < points.count;i++ )
    {
        p = [[points objectAtIndex:i]CGPointValue];
        CGPathAddLineToPoint(pointPath, NULL, p.x, p.y);
    }
    CGPathAddPath(path, NULL, pointPath);
    CGPathRelease(pointPath);
}


 drawPath = CGPathCreateCopy(path);
 [self setNeedsDisplay];

 [lines removeAllObjects];
 [points removeAllObjects];
}

そして、私の drawRect は次のようになります。

- (void)drawRect:(CGRect)rect
{
CGContextRef ctx = UIGraphicsGetCurrentContext();
CGContextSetLineWidth(ctx, 3);
[[UIColor blackColor]set];
CGContextAddPath(ctx, drawPath);
CGContextStrokePath(ctx);
}

画面の最後の行だけを表示するのはとても奇妙に思えます。どうしたの?

これらすべてのパスを画面に表示するにはどうすればよいですか?

4

1 に答える 1