2011-08-21 6 views
0

UIWindow의 하위 클래스를 사용하여 앱의 모든보기에서 터치 이벤트를 처리하고 있습니다. 나는 끌어서 놓기 메커니즘을 구현하려고합니다.UIWindow는 하위 뷰를 제거한 후 터치하지 못하도록합니다.

보기를 탭하여 누르고 있으면 해당보기가 제거되고 손가락으로 드래그가 시작됩니다. 문제는 내가 손가락을 들어서 다시 만질 때까지 터치 이벤트를 수신하지 못하도록 창을 닫은 후에입니다.

도움?

EDIT : 하위보기가 제거 된 후 창에 닿아 있지만 터치 위상은 UITouchPhaseStationary이며 UITouchPhaseMoved가 아니라는 것을 알게되었습니다. [이벤트 터치]에는 UITouch가 하나만 있지만; 이것이 어떻게 가능한지?

답변

0

꽤 확실하지 않지만 UIViewController 클래스가 아닌 UIWindow 클래스의 이벤트를 처리하려고하므로 문제가 있다고 생각합니다. UIWindow 그렇게하도록 설계되지 않았습니다. 시도해 보시지 않겠습니까?

  1. UIViewController 클래스의 인스턴스를 프로젝트에 추가하십시오.
  2. 해당 UIViewController의보기를 UIWindow 인스턴스에 추가하십시오.
  3. UIViewController에 터치 처리 방법을 추가하십시오.
  4. 첫 번째보기는 UIViewController입니다.
  5. 터치 이벤트에 응답하십시오.
  6. UIViewController에서 첫 번째보기를 제거하고 두 번째보기를 가져 오거나 무엇이든 가져 오십시오. (UIWindow이 아닌 UIViewController 아래보기를 전환하는 종류입니다.)
관련 문제