如何让触摸事件穿透一个View

时间:2023-03-10 05:56:21
如何让触摸事件穿透一个View

如何让触摸事件穿透一个View

如何让触摸事件穿透一个View

偶然间发现,如何屏蔽或者让触摸事件穿透一个view是一个很简单的事情。

现象:

如何让触摸事件穿透一个View

源码:

//
// ViewController.m
// UserInteraction
//
// Created by YouXianMing on 14/10/23.
// Copyright (c) 2014年 YouXianMing. All rights reserved.
// #import "ViewController.h" @interface ViewController () @end @implementation ViewController - (void)viewDidLoad {
[super viewDidLoad]; // 新建按钮
UIButton *button = [[UIButton alloc] initWithFrame:self.view.bounds];
[button addTarget:self
action:@selector(buttonEvent:)
forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:button]; // 覆盖在上层的view
UIView *testView = [[UIView alloc] initWithFrame:self.view.bounds];
[self.view addSubview:testView];
testView.userInteractionEnabled = YES;
} - (void)buttonEvent:(UIButton *)button {
NSLog(@"触摸事件");
} @end

其实原理很简单,一个触摸事件时候被view接受或者屏蔽,完全由这个参数决定,那就是userInteractionEnabled。

如何让触摸事件穿透一个View

所以,当你想屏蔽掉一个事件不让他穿透,设置覆盖的view的userInteractionEnabled为NO即可。