点击事件处理, 以及hitTest:withEvent:实现--超出父视图点击事件处理注意的问题

公司项目是一个二次开发项目,tabar有一个按钮是自定义的按钮,点击超出tabar范围的部分就失灵了。然后呢,就根据https://www.jianshu.com/p/ef83a798121c这篇文章重写了hitTest:withEvent:方法。


重写后,有一个诡异的事情出现了,在首页点中间的按钮,是木有问题的,按道理,解决啦

然后,在子页面,嗯就是下面这个

点击找人代付,跳出来的是同一个页面


而本来该跳出来的是


直接上解决的代码吧,其实在重写的时候呢,也要把        // 1.判断当前控件能否接收事件

        if(self.userInteractionEnabled==NO||self.hidden==YES||self.alpha<=0.01)returnnil;

添加进去的

//返回一个view来响应事件 解决发布按钮超出bar frame而无法响应事件

- (UIView*)hitTest:(CGPoint)point withEvent:(UIEvent*)event

{

    UIView*view = [superhitTest:pointwithEvent:event];

    if(view ==nil) {

        // 1.判断当前控件能否接收事件      很重要

if(self.userInteractionEnabled==NO||self.hidden==YES||self.alpha<=0.01)returnnil;

        CGPointchatP = [selfconvertPoint:pointtoView:self.publishButton];

        // 判断下点在不在chatView上

        if([self.publishButtonpointInside:chatPwithEvent:event]) {

            returnself.publishButton;

        }

    }

    returnview;

}

你可能感兴趣的:(点击事件处理, 以及hitTest:withEvent:实现--超出父视图点击事件处理注意的问题)