【问题标题】:Touch Detection in subviews子视图中的触摸检测
【发布时间】:2012-10-22 10:43:33
【问题描述】:

我有一个视图,其中有一个滚动视图。我想检测触摸开始、移动等方法。我使用了这些方法。这些方法在滚动视图之外工作正常,但在滚动视图内部不起作用。告诉我为什么它不起作用以及解决方案是什么。

【问题讨论】:

  • 你加scrollView.userInteractionEnabled=YES;
  • @Unknown, userInteractionEnabled=YES 默认为UIScrollView
  • 是的,默认启用用户交互。

标签: iphone objective-c ios ios5 ios4


【解决方案1】:

您必须继承 UIView(作为 MyUIView)并实现触摸委托。

然后将 MyUIView 添加到 UIScrollView

例如:

   @interface MyUIView : UIViewController {

   }
   @end

  @implementation MyUIView

      //implement touch delegate here
   }

在主视图中添加这一行

MyUIView *myUIView = [[MyUIView alloc] init];
myUIView.userIntarctionEnabled = YES;
[yourScrollView addSubView:myUIView.view];

注意:您可以使用UIGustures 代替子分类。 UIGestureRecognizer 类可用于帮助检测和响应 iOS 设备上常见的各种 UI 手势

【讨论】:

  • 该类是视图控制器,我通过情节提要做了同样的事情。
  • 我也使用了 UIGustures,但它们无法帮助我检测移动、开始等。
  • 然后子类 UIViewController 和 UIViewController.view 作为你的滚动条的子视图
【解决方案2】:

使用convertPoint: toView: 方法。

CGPoint *point = [yourView convertPoint:touchPoint toView:yourScrollView];

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-06-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-08
    • 2016-09-13
    • 1970-01-01
    相关资源
    最近更新 更多