2014-04-22 3 views
-1

내 손가락이 이미지 뷰가있는 동일한 위치로 이동하면 코드를 실행하려고합니다.터치 위치가 Imageview에 있음을 확인하십시오.

CGRect imagepos = myImage.frame; 

그리고 실제 터치 위치의 위치 :

UITouch *myTouch = [[touches allObjects] objectAtIndex: 0]; 
CGPoint currentPos = [myTouch locationInView: self.view]; 

내가 CGPointEqualToPoint으로 시도 그렇지 않은 일

나는 이미지 뷰의 위치를 ​​정의했다. 그리고 나서 CGRectContainsPoint으로 시도했는데, imagepos와 currentpos가 동일한 x 좌표를 가지고있을 때 "내 코드가 움직이지 않았습니다"(내 손가락이 이미지로 이동하지 않고 동일한 x 위치 만 나타냅니다.) Y 위치는 완전히 다른).

어떻게하면 손가락이 (또는 터치 방식으로 움직이는 경우에도) 터치 /가 이미지의 아무 곳이나/어디로 이동했는지, 일부 코드 또는 방법을 실행할 수 있습니까?

답변 해 주셔서 감사합니다. 당신의 touchesBegan 방법에

답변

1

, 당신은 이런 식으로 뭔가를 시도 할 수 있습니다 : 당신의 이미지 뷰가 터치 할 때 당신을 알려줍니다

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event 
{ 
    UITouch *touch = [touches anyObject]; 
    if([touch view] == myImgView) 
    { 
     NSLog(@"My Image was touched"); 
    } 
} 

. imageView에서 userInteractionEnabled을 YES로 설정하십시오.

+0

답변을 주셔서 감사합니다. 시도했지만 작동하지 않습니다. 내 이미지는 스프라이트 노드입니다. 나는 경고 : 명료 한 포인터 유형 'UIVIEW'와 'SKSpriteNode'의 비교. – Mehmet63

+0

@ Mehmet63 질문에 스프라이트 나 스프라이트 키트를 언급하는 것이 좋을 것이라고 생각하지 않습니까? "Imageview"라는 단어 대신 UIKit 객체입니다. – Fogmeister

+0

@ Fogmeister 예 U가 옳습니다. 그것은 실패했습니다. 나는 대답을 시도하고있다. 감사. – Mehmet63

1

헤이 아래에 시도 -이 도움이

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event 
{ 
    for (UITouch *touch in touches) { 
    CGPoint location = [touch locationInNode:self]; //Now you got current location of click or tap 

    if(location.y == YOUR_IMAGE_VIEW_POSITION_Y) 
    { 
     NSLog(@"Got the TOUCH...OOOoopsss !!!"); 
    } 
    } 
} 

희망을. 점은 RECT 내부에있는 경우 기능이 있습니다

0

...

CGRectContainsPoint(rect, point); 

그것은 부울을 반환합니다.

터치 포인트를 가져 와서 이것을 imageView 프레임과 함께 실행하면 터치가 이미지보기 안에 있는지 확인할 수 있습니다.

관련 문제