公司项目是一个二次开发项目,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;
}