나는 테이블보기가 포함 된 MGSplitView
과 가로로 고정 된 UIWebView
이있는 앱을 가지고 있습니다. 웹보기에는 웹보기에 첨부 된 UITapGestureRecognizer
(트리플 탭용)이 있습니다. 웹보기 작업의 왼쪽 부분의 탭. 웹보기의 오른쪽에있는 탭이 손실됩니다. 동작이 트리거되지 않으며 제스처 위임 메시지가 수신되지 않습니다.잃어버린 제스처 iPad 풍경
UISplitViewController
으로 전환해도 동일한 문제가 있으므로이 문제는 MGSplitViewController
에 있지 않은 것으로 보입니다. 탭에서 길게 누르기로 변경하는 경우에도 동일한 결과가 나타납니다.
tap 위치는 x 좌표를 gesture.view의 최대 너비 또는 최대 너비와 비슷하게 표시되지만 화면의 중심에 가깝게 표시됩니다. 예상 한 위치는 디스플레이의 중심과 관련이 있습니다. 웹보기 내용이 명확하게 표시되고 올바르게 배치됩니다. 그래서 세로에 갇혀되고, shouldAutorotate
및 supportedInterfaceOrientations
을 구현 관련
모든 뷰 컨트롤러는 아닌 것 같습니다 즉 MGSplitViewController
, 내 UITableView
서브 클래스 (왼쪽 패널)와 오른쪽 패널 UIViewController
서브 클래스입니다.
내 제스처 인식기 위임 한 트리플 탭 (오른쪽 패널 웹보기에서보기)에서 출력 :
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch {
NSLog(@"%s", __PRETTY_FUNCTION__);
NSLog(@"gestureRecognizer view frame: %@", NSStringFromCGRect(gestureRecognizer.view.frame));
NSLog(@"location %@", NSStringFromCGPoint([gestureRecognizer locationInView:gestureRecognizer.view]));
return YES;
}
-[DocumentBrowser gestureRecognizer:shouldReceiveTouch:]
gestureRecognizer view frame: {{0, 0}, {703, 704}}
location {703, -20}
-[DocumentBrowser gestureRecognizer:shouldReceiveTouch:]
gestureRecognizer view frame: {{0, 0}, {703, 704}}
location {414.5, 204.5}
-[DocumentBrowser gestureRecognizer:shouldReceiveTouch:]
gestureRecognizer view frame: {{0, 0}, {703, 704}}
location {414.5, 204.5}
보고 첫 번째 위치가 이상한 것 같다.
오작동하는보기는 내보기 컨트롤러보기의 수퍼 뷰인 UIViewControllerWrapperView입니다. 이런 종류의 문제에 대해 애플 프라이빗 클래스가 책임을 져야한다는 것은 조금 무리한 것 같다. –