하나의 큰 UI 뷰 위에 3 개의 UIView가 있습니다. 나는 사용자가 맨 위에있는 것을 터치하고 다른 것들에 관심이 없는지 알고 싶다. 두 번째 UIView에 두 개의 버튼이 있고 세 번째 UIView에 UITable이 있습니다.특정 UIView가 다른 UIView들 사이에서 터치되었는지 감지합니다.
문제는 첫 번째보기에서 userInteractionEngabled를 켜고 작동하지만 다른 모든보기가 꺼져 있어도 같은 방식으로 응답합니다. self.view에서 userInteractionEnabled를 비활성화하면 응답하지 않습니다. 또한 touchesBegan 대리자 메서드에서 어떤 뷰가 수정되었는지 감지 할 수 없습니다.
내 코드 : 위해
UIView *aView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 150)];
aView = userInteractionEnabled = YES;
[self.view addSubview:aView];
UIView *bView = [[UIView alloc] initWithFrame:CGRectMake(0, 150, 320, 50)];
bView.userInteractionEnabled = NO;
[self.view addSubview:bView];
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
//This gets called for a touch anywhere
}
죄송합니다. 귀하가 올바른 길을 가고 있음을 알고 있지만 귀하의 말을 정확히 이해하는 데 약간의 어려움이 있습니다. 귀하의 locationInView에서 감동에서 지점을 만지고 나는 기술적으로 어떤 uiview 사용자 가이 감동하지만, 어떻게 hitTest를 호출하는지 잘 모르겠어요 – Rudiger
그것은'locationInView :'매개 변수와' nil'은 메인 윈도우의 좌표 공간에서'CGPoint'라는 위치를줍니다. –