【问题标题】:Touch events not working on UIViews inside UIScrollView触摸事件在 UIScrollView 内的 UIViews 上不起作用
【发布时间】:2010-11-24 17:12:38
【问题描述】:

我在 UIScrollView 中有一系列 UIView,这些视图的 UIViewController 没有接收到触摸事件。如果我将视图从滚动视图中取出,那么它可以工作。

我已在视图上启用 userInteraction,但它仍然无法正常工作!

这一定是可能的,如果有人能指出我正确的方向,我将不胜感激!

谢谢,

迈克

【问题讨论】:

    标签: iphone uiviewcontroller uiscrollview uitouch


    【解决方案1】:

    视图是否有自己的触摸处理程序,或者您是否依赖视图控制器来获取触摸?根据您的设置方式,视图可能会在不传递到视图控制器的情况下处理触摸。

    【讨论】:

    • 视图没有自己的触摸处理程序,我在他们的控制器中有处理程序。当将视图放置在滚动视图之外但不在内部时,这一切都有效!
    【解决方案2】:

    我通过覆盖视图控制器的 loadView 方法,并将视图的实例变量设置为传递触摸的简单 UIView 子类,克服了这个问题。

    【讨论】:

      【解决方案3】:

      检查您在滚动视图委托方法视图中返回的内容,以便在滚动视图中滚动。

      正如 mahboudz 提到的 - 检查您是否有任何自定义的触摸事件处理程序。如果没有,请来一份。用你的观点做任何你想做的事情会更轻松。从 scrollViewSuite 查看 Apple 示例应用程序。他们有 tapDetectingImageView 委托。我在我的应用程序中使用了相同的方法,效果很好!希望这会有所帮助!

      【讨论】:

      • 我的意思是 viewForZooming 在滚动视图和 scrollViewDidScroll 代表。
      【解决方案4】:

      您可能会发现this post 很有用。这是一个非常干净的事件拦截方式的示例。

      【讨论】:

        【解决方案5】:

        为您想要接收触摸事件的视图提供触摸处理程序,并且这将起作用。

        【讨论】:

          猜你喜欢
          • 2013-03-10
          • 2017-05-17
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多