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];
}