点击事件处理, 以及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;

}

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容