• 如何让触摸事件穿透一个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的userInteractionEnabled为NO即可。

  • 相关阅读:
    哈希冲突详解(拉链法,开放地址法)
    哈希冲突详解(拉链法,开放地址法)
    排序算法
    排序算法
    加分二叉树
    加分二叉树
    动态规划
    动态规划
    动态规划
    动态规划
  • 原文地址:https://www.cnblogs.com/YouXianMing/p/4045644.html
Copyright © 2020-2023  润新知