0

UIBezierPathを使用してtouchesMovedで線を引くにはどうすればよいですか? 2 本のタッチ/指を使用して線を引こうとすると、引かれますが、複数の線が引かれます。lastObjectIndex を削除しようとしましたが、removeAllObjects も試しましたが、結果は同じです。指 1 から指 2 まで 1 本の線を引きたいだけで、ユーザーが指を離すと、UIImageView に線が描画されます。これが私のコードです:

-(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
{
    if ([drawMode isEqualToString:@"stroke"]) {
        UITouch *touch=[[touches allObjects] objectAtIndex:0];
        [myPath addLineToPoint:[touch locationInView:self]];
    }
    else if ([drawMode isEqualToString:@"line"]) {
        NSArray *allTouches = [touches allObjects];
        if ([touches count] == 2) {
            UITouch *touch1 = [allTouches objectAtIndex:0];
            UITouch *touch2 = [allTouches objectAtIndex:1];
            CGPoint touchLoc1 = [touch1 locationInView:self];
            CGPoint touchLoc2 = [touch2 locationInView:self];
            [myPath moveToPoint:touchLoc1];
            [myPath addLineToPoint:touchLoc2];
            [shapeArray removeAllObjects];
            [shapeArray addObject:myPath];
        }
    }

    [self setNeedsDisplay];
}
4

0 に答える 0