UITableView 跟踪触摸错误的轴

Posted

技术标签:

【中文标题】UITableView 跟踪触摸错误的轴【英文标题】:UITableView tracking touches on wrong axis 【发布时间】:2012-02-13 22:57:55 【问题描述】:

我有一个 uitableview 控制器,它是由 uiviewcontroller 管理的视图的子视图。没有什么特别的,但 tableview 跟踪错误轴上的手势(仅在设备上)。

基本上你向上/向下滚动表格不会做任何事情,而向左/向右滚动表格向上/向下。它超级奇怪。我希望有人以前见过这个,也许知道是什么原因造成的?

编辑:这是一个视频 http://c.drunknbass.com/EB7m

最后,我正在滚动一个正常滚动的 uiscrollview,它是同一个 uiviewcontroller.view 的子项

【问题讨论】:

邮政编码或截图。你在做任何CGTransforms 吗? 以前肯定见过,不知道我是怎么解决的,但它是微不足道的。大胆猜测:你所有的视图控制器都实现了shouldAutoRotateToInterfaceOrientation:吗? 没有变换,是的,控制器全部旋转,桌子上事件的手势轴在任一方向上都是向后的。 【参考方案1】:

UIKit 依赖于一个关键窗口,并且该窗口具有一个根视图控制器,以便能够正确处理事件并将它们转发给您的代码。我怀疑您的应用程序中可能没有正确设置其中之一。 (这样设备方向与 UI 的视觉方向不匹配。)

还要注意,在 ios 5 之前,UIKit 并不真正支持让一个控制器的视图成为另一个控制器的子视图。它可以完成,并且大部分都有效,但是您将不得不管理所有生命周期事件的转发。 (参见文档中的the notes on controller containment,以及-automaticallyForwardAppearanceAndRotationMethodsToChildViewControllers 的描述。)

【讨论】:

应用有一个rootviewcontroller。 vc 栈实际上是 uiwindow->uinavigationcontroller->uiviewcontroller,视图是 uiviewcontroller.view->container->uitableview。表面上看起来一切正常。

以上是关于UITableView 跟踪触摸错误的轴的主要内容,如果未能解决你的问题,请参考以下文章

在触摸 UITableview 时禁用显示选择时出现问题?

UITableviews 作为 iCarousel 的子视图添加了滑动问题

UITableView推送segue多次触发

UITableView 在旋转时使用自动布局调整大小

在 Swift 中使用 touchesMoved 跟踪触摸

UITableView的contentSize