2010-06-27 4 views
0

저는 프로그래밍에 익숙하지 않고 현재 프로그램에서 몇 가지 방법을 찾아내는 데 문제가 있습니다. 어쨌든 내 touchmove 이벤트를 해결하는 방법을 알아낼 수 없습니다. touchmove 이벤트의 방향에 따라 x 방향 또는 y 방향으로 uiimage를 이동하려고하지만 움직임이 20 픽셀과 같은 격자 유형 이동에 있도록하고 싶습니다. 나는 touchbegan을 사용하여 어떤 이미지가 터치인지 확인합니다.touchmove로 20 픽셀 증가한 UIImage 이동 X 좌표 또는 Y 좌표

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { 
UITouch *touch = [[event allTouches] anyObject]; 
CGPoint location = [touch locationInView:touch.view]; 

if(CGRectContainsPoint(image1.frame,location)) 
    image1IsDragging = YES; 
else 
    image2IsDragging=NO; 

}

그리고 난 내 touchmoved 이벤트와 붙어있어.

 - (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event { 

UITouch *touch = [[event allTouches] anyObject]; 
CGPoint location = [touch locationInView:touch.view]; 

    if (image1IsDragging == YES) { 
    //stuck here on how to check the direction of the swipe and how to move in increment of 20 pixs 
    } 

}

내가 좋아하는 거리의 반올림을 받고 생각하고 있었는데,

float distanceX = newLocation.x - firstTouch.x; 

그러나 나는 그 방법을 모릅니다. 누군가가 나를 도와 줄 수 있기를 바랍니다. 감사.

+0

을 당신이있는 UIImage를 이동하는 방법? UIImageView를 움직이고 있습니까? 아니면 drawRect로 디스플레이를 업데이트하고 있습니까? – daltonclaybrook

답변

0
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event { 
    UITouch *touch = [[event allTouches] anyObject]; 
    CGPoint location = [touch locationInView:touch.view]; 
    **CGPoint pastLocation = [touch previousLocationInView:self.view];** //previous touch 


if (image1IsDragging == YES) { 

     **if(pastLocation.x <location.x) //check the direction for x 
    image.center =CGPointMake(yourimage.center.x +20, image.center.y); 
    else 
     image.center =CGPointMake(image.center.x -20, image.center.y);** 



      } 
    } 
+0

작은 설명이 도움이 될 것입니다. –