2010-06-26 5 views
1

I 사용자 탭 경우 나는 이런 식으로 뭔가 할 수있는 화면의 특정 영역에 터치를 감지하려고의 특정 영역에 터치 : 나는 터치하면감지 화면

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

    UITouch *touch = [touches anyObject]; 
    CGPoint point=[touch locationInView:myView]; 
    NSLog(@"pointx: %f pointy:%f", point.x, point.y); 
    if (CGRectContainsPoint(CGRectMake(5, 5, 40, 130),point)); 
    { 
     NSLog(@"touched here");      
    } 
} 

을하지만,이 메시지도 표시됩니다 화면의 아무 곳이나. myView을 터치해야 표시됩니다.

다른 숫자로 point.xpoint.y을 설정하려고했지만 작동하지 않습니까? 어떻게 해결할 수 있습니까?

답변

1

인용 부호가있는 코드는 포인트가 뷰에서 음수 위치를 가질 수 있으므로 해당 뷰 내의 포인트를 요구하기 때문에 항상 YES를 반환합니다. 보기 만 닿으면 다음을 사용하십시오.

if ([touch view] == myView) 
+0

답변을 얻으려면 동의하십시오. 이렇게하면 다른 사람들도 귀하의 질문에 답변 할 수 있습니다. – RunLoop

+0

작동하지 않습니까 ?? 말소 myview 수있는 imageview 또는 webView ?? 위의 두 가지를 시도했지만 작동하지 않습니다. – hemant

+0

myView가 UIImageView 인 경우 다음 줄을 추가해야합니다. myView.userInteractionEnabled = YES; – RunLoop