【问题标题】:How to set frame for TapGesture Recognizer如何为 TapGesture 识别器设置框架
【发布时间】:2016-11-10 09:11:52
【问题描述】:

我有一个 imageview,我只想点击 imageview 的一侧。是否可以为手势设置框架?任何人都可以提供解决方案吗?

【问题讨论】:

  • 只需在图像视图的一侧添加一个透明视图,然后向该视图添加手势...
  • 欢迎苏米...
  • 欢迎来到 Stack Overflow!我编辑了您问题的标题,以包含更多细节并使您的问题更加清晰。您不能为 ant 类型的手势设置框架,您可以将手势识别器添加到视图对象,然后您可以操作视图的框架或在您添加了点击手势的视图中测试点击的位置。跨度>

标签: ios objective-c uiimageview uitapgesturerecognizer


【解决方案1】:

使用UIGestureRecognizerDelegate,我想你可以了解如何比较:

-(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch {
    if ([touch locationInView:yourview].x < somePoint.x) {
        return false;
    } else {
        return true;
    }
}

【讨论】:

    【解决方案2】:

    您可以在图像视图的顶部覆盖一个视图并将点击识别器添加到这个新视图中,这样的事情将使图像的左侧可点击

    UIView tapView = [[UIView alloc]initWithFrame:CGRectMake(0, 0, imageView.frame.size.width/2, imageView.frame.size.height)];
    
    [imageView addSubView:tapView]
    
    UITapGestureRecognizer *singleFingerTap = 
      [[UITapGestureRecognizer alloc] initWithTarget:self 
                                              action:@selector(handleSingleTap:)];
    [tapView addGestureRecognizer:singleFingerTap];
    

    【讨论】:

      【解决方案3】:

      您可以根据您的要求简单地将 UIView 放在带有框架的 imageView 顶部,然后在该 UIView 上放置点击手势。

      您可以通过情节提要/xib 或以编程方式执行此操作。

      例如,通过编程方式 - 您只想在 imageView 宽度为 50 px 的区域内点击。为此:

          UIView *vw = [[UIView alloc] initWithFrame:CGRectMake(imgView.frame.origin.x, imgView.frame.origin.y, 50, imgView.frame.size.height)];
      
          // add gesture to view
          UITapGestureRecognizer *tapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleTapGesture:)];
          tapGesture.numberOfTapsRequired = 2;
          [vw addGestureRecognizer:tapGesture];
      
          [imgView addSubview:vw];
      

      现在来处理你的双击

      -(void)handleTapGesture:(UITapGestureRecognizer *)gesture
      {
          // handle double tap
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-10-17
        • 2013-04-02
        • 1970-01-01
        • 2012-02-12
        • 1970-01-01
        • 1970-01-01
        • 2011-06-21
        相关资源
        最近更新 更多