【问题标题】:Catching UIGestureRecognizer only on the parent view仅在父视图上捕获 UIGestureRecognizer
【发布时间】:2011-11-17 21:01:21
【问题描述】:

我有两个视图控制器,它们可以将相同的组件保存为子视图。

组件实现处理UIDragGestureRecognizer。

控制器 A 还处理拖动手势并且应该覆盖组件的默认拖动行为。

所以问题是,如果组件是控制器 B 的子视图,我希望该组件捕获拖动事件,但如果它是控制器 A 的子视图,我不希望它捕获拖动事件。

将 UIDragGestureRecognizer 添加到 controllerA.view 会导致控制器和组件都接收到对我不利的拖动事件。

如果组件是控制器 A 的子视图,如何确保组件不会收到拖动事件? (我在初始化时将 UIGestureRecognizer 添加到组件中,当时我仍然不知道哪个控制器会保存它)。

【问题讨论】:

    标签: iphone view overriding uigesturerecognizer subview


    【解决方案1】:

    [组件removeGestureRecognizer:component.myGestureRecognizer];

    【讨论】:

    • 这个解决方案有两个问题,第一个是gestureRecognizers是为组件的一个子视图(特别是UITableView)设置的。第二个问题是组件的手势识别器在加载时初始化,如果我将它们删除然后在控制器 B 中显示组件,那么组件将不会对手势识别器做出反应。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多