2011-10-21 5 views
0

Я пытаюсь создать код для рисования того, что пользователь рисует пальцем. Я использовал следующий код для этого:Рисование с touchhesMoved

-(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

Нет необходимости ответа больше, я ответил на мой собственный вопрос: р

Для тех, кто хочет ответ, хотя, вот код:

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

я добавил пункт называется последним штрихом запишите последнюю точку, а затем цикл (для), чтобы заполнить пробелы между текущей точкой и последней.

+0

Итак, как вы это используете, но оставите пробел? Этот код отлично работает, но я не хочу, чтобы изображение было облегающим. –