美文网首页响应者 事件传递 导航条 tabbar
[需求记录]_使用hitTest实现穿透点击事件

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

作者: figure_ai | 来源:发表于2016-09-19 17:16 被阅读41次

  • 效果演示:
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(@"按钮处理点击事件!");
}

相关文章

网友评论

本文标题:[需求记录]_使用hitTest实现穿透点击事件

本文链接:https://www.haomeiwen.com/subject/rddnettx.html