在UIView中添加点击事件

在项目中,点击某个按钮需要整个屏幕用阴影覆盖,点击阴影后阴影消失。因为阴影是个UIView,所以需要给阴影加上点击事件。

以UIView类型的self.baseView为例:

  • 首先设定UIView(或其子类)为可交互的:

    1
    self.baseView.userInteractionEnabled = YES;

    这里要说明一下,UIImageView和UILabel默认的userInteractionEnabled为NO,而UIView默认为YES。

  • 添加tap手势:

    1
    2
    //tap手势
    UITapGestureRecognizer* singleTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleSingleTap:)];
  • 将手势添加至需要相应的view中

    1
    [self.baseView addGestureRecognizer:singleTap];
  • 执行触发的方法:

    1
    2
    3
    -(void)handleSingleTap:(UITapGestureRecognizer *)sender{
    //在这里写触发事件
    }
  • 默认为单击触发事件:

  • 设置手指个数:

    1
    [handleSingleTap setNumberOfTapsRequired:1];
  • 获取是哪个View触发了此方法:

    1
    sender.view ;