响应者 事件传递 导航条 tabbar

[需求记录]_使用hitTest实现穿透点击事件

2016-09-19  本文已影响41人  figure_ai

hitTest实现穿透点击.gif
#import "OrangeView.h"

@interface OrangeView : UIView

@property (nonatomic,weak)IBOutlet UIButton*btn;

@end

@implementation OrangeView

- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
{
    NSLog(@" 橙色界面处理点击事件!");
}

- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event
{
    //判断点击的位置在不在按钮上
    //转换点击位置的坐标系
    CGPoint btnP = [self convertPoint:point toView:self.btn];
    
    //获取按钮
    if ([self.btn pointInside:btnP withEvent:event]) {
        //点在按钮上
        return self.btn;
    }else
    {
        return [super hitTest:point withEvent:event];
    }
}
/**
*点击按钮的响应事件
*/
- (IBAction)btnClick
{
    NSLog(@"按钮处理点击事件!");
}
上一篇 下一篇

猜你喜欢

热点阅读