2011-10-21 10 views
0

私は、ユーザが指で描いたものを描画するためのコードを作成しようとしています。私は、このために次のコードを使用:touchesMovedで描画する

-(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event { 
    UITouch *touch = [touches anyObject]; 
    if ([touch tapCount] == 2) { 
    [myImage setHidden:YES]; 
} 
CGPoint currentTouch = [touch locationInView:self.view]; 
if (currentTouch.x >10 && currentTouch.x < 300 && currentTouch.y >245 && currentTouch.y < 440) { 
CGRect myImageRect = CGRectMake(currentTouch.x, currentTouch.y, 5.0f, 5.0f); 
myImage = [[UIImageView alloc] initWithFrame:myImageRect]; 
[myImage setImage:[UIImage imageNamed:@"dot.png"]]; 
[self.view addSubview:myImage]; 
} 

をしかし、問題はtouchesMovedは、一つ一つのピクセル呼び出されませんので、すべてのポイントと次の間には大きなギャップがあります。だから私はどういうわけかそれらのギャップを埋める必要があります。誰かが私にいくつかのコードでそれを手伝うことができますか?

ありがとうございます。

答えて

1

答えは必要ないにもう、私は自分の質問に答え:答えをしたい人のためのp

が、しかし、ここでのコードだ:

UITouch *touch = [touches anyObject]; 
currentTouch = [touch locationInView:self.view]; 

if (currentTouch.x >10 && currentTouch.x < 300 && currentTouch.y >245 && currentTouch.y < 440) { 
CGRect myImageRect = CGRectMake(currentTouch.x, currentTouch.y, 5.0f, 5.0f); 
myImage = [[UIImageView alloc] initWithFrame:myImageRect]; 
[myImage setImage:[UIImage imageNamed:@"dot.png"]]; 
    myImage.tag = tag; 
[self.view addSubview:myImage]; 
[myImage release]; 
    if (!CGPointEqualToPoint(lastTouch, CGPointMake(0, 0))) { 
     CGPoint nextPoint; 
      for (double h = 0.0; h<25.0; h++) { 
      double blend = h/25; 
      nextPoint.x = currentTouch.x + (blend * (lastTouch.x - currentTouch.x)); 
      nextPoint.y = currentTouch.y + (blend * (lastTouch.y - currentTouch.y)); 
      myImageRect = CGRectMake(nextPoint.x, nextPoint.y, 5.0f, 5.0f); 
      myImage = [[UIImageView alloc] initWithFrame:myImageRect]; 
      [myImage setImage:[UIImage imageNamed:@"dot.png"]]; 
       myImage.tag = tag; 
      [self.view addSubview:myImage]; 
      [myImage release]; 
    } 

    } 
lastTouch = currentTouch; 
} 
} 

私はに最後のタッチと呼ばれるポイントを追加しました最後のポイントを記録してから、現在のポイントと最後のポイントの間のスペースを埋めるための(for)ループを作成します。

+0

これはどうやって使うのですか?このコードは素晴らしいですが、一緒にぴったり合うイメージは望ましくありません。 –

関連する問題