公司項目是一個二次開發(fā)項目,tabar有一個按鈕是自定義的按鈕,點擊超出tabar范圍的部分就失靈了。然后呢,就根據(jù)http://www.itdecent.cn/p/ef83a798121c這篇文章重寫了hitTest:withEvent:方法。

重寫后,有一個詭異的事情出現(xiàn)了,在首頁點中間的按鈕,是木有問題的,按道理,解決啦

然后,在子頁面,嗯就是下面這個

點擊找人代付,跳出來的是同一個頁面


直接上解決的代碼吧,其實在重寫的時候呢,也要把? ? ? ? // 1.判斷當前控件能否接收事件
? ? ? ? if(self.userInteractionEnabled==NO||self.hidden==YES||self.alpha<=0.01)returnnil;
添加進去的
//返回一個view來響應事件 解決發(fā)布按鈕超出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;
}