이 상황에서 UIButtons
, UIScrollViews
등을 사용하는 데 문제가 있습니다.UIResponder 체인 설명 필요
UIWindow
의 루트 컨트롤러 인 기본 UIViewController
가 있습니다. 그 레이어 위에 나는 "Middle Layer View"라고 부를 다른 UIViews
을 추가했습니다. 그리고 맨 위에 또 다른 UIView
가 오버레이 개체에 추가되었습니다.
중간 계층보기가 여러보기에 대해 정기적으로 변경됩니다. 사용하는 UIView
은 NIB 파일로 만든 UIViewController
에서 가져온 것입니다. 다음은 예제입니다.
if (mode == eModeShowView1)
UIViewController* nextController = [[UIViewController alloc] initWithNibName:@"View1"...
else if (mode == eModeShowView2)
UIViewController* nextController = [[UIViewController alloc] initWithNibName:@"View2"...
[UIView insertSubview:nextController.view below:m_overlayView];
이제 화면을 터치하면 첫 번째 응답자는 분명히 OverlayView
또는 OverlayView
의 OverlayView
입니다. 터치 입력의 UIEvent
은 뷰 체인을 올라가지만 중간 레이어보기와 그 UIView
의 UIResponders
는 건너 뜁니다. 루트 UIViewController
로 곧바로 점프합니다.
여기에 무슨 일이 일어나는 지 아는 사람 있습니까?
어떻게 든 UIEvents
를 두 개 만들어서 해결할 수 있습니까? 오버레이보기 용과 미들 레이어보기 용 중 하나입니까? 그게 가능하니? 그렇다면 어떻게?
어떤 도움을 주시면 감사하겠습니다. 감사합니다, 리치
안녕하세요. 빠른 답변 감사합니다. 내 모든 ViewController에서 touchesBegan 등을 기록했습니다. 이것이 제가 중간 계층을 건너 뛰는 것을 알 수 있었던 것입니다. 이유를 모르겠습니다. : s. –
내 업데이트 된 답변을 통해 이동하십시오 –
아, 네. 그것이 바로 일어나고있는 일입니다. 누구든지이 문제를 해결할 수있는 방법을 알고 있습니까? 오버레이 아래에 중간 레이어를 삽입 한 다음 오버레이의 슈퍼 뷰를 중간 레이어로 설정할 수 있습니까? –