0

我有一个应用程序,其中MGSplitView包含一个表格视图和一个UIWebView固定为横向的应用程序。Web 视图有一个UITapGestureRecognizer(用于三次点击)附加到 Web 视图。在 web 视图的左侧部分中的点击工作;Web 视图右侧的点击丢失 - 未触发操作,也未收到手势委托消息。

问题似乎不在于MGSplitViewController,因为切换到 aUISplitViewController也有同样的问题;从点击更改为长按也有相同的结果。

轻按位置报告的 x 坐标等于或接近于gesture.view 的最大宽度,但显然靠近显示器的中心,我希望这与问题的根源有关 - 然而Web 视图内容清晰可见并正确放置。

所涉及的所有视图控制器都实现了shouldAutorotateand supportedInterfaceOrientations,因此似乎不太可能陷入纵向,即MGSplitViewController我的UITableView子类(左侧面板)和UIViewController右侧面板的子类。

我的手势识别器委托和输出一次三次点击(右侧面板 Web 视图中的视图):

- (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}

报告的第一个位置似乎很奇怪。

4

1 回答 1

1

检查您的方向和视图大小调整机制。当这些区域出现问题时,我已经多次看到这种情况 - 如果您记录触摸位置,我想您可能会发现它们在左侧 768 点处停止,即某处有一个认为它的视图是纵向的。

于 2012-12-31T16:14:11.413 回答