Ios UIButton操作无法在UIView中工作
我在视图中有一个Ios UIButton操作无法在UIView中工作,ios,iphone,Ios,Iphone,我在视图中有一个UIView子类的视图和两个按钮以及UITableview。在设计部分,首先是一个按钮,然后是UITableView,然后是第二个按钮。当我单击第一个按钮(即tableview上方的按钮)时,它将获得按钮操作。但是,当我单击第二个按钮时,即UITableView下面的按钮,它不会得到按钮操作。如果我将第二个按钮拖动到tableview位置上方,它将获得操作。请帮帮我 好吧,当你有一个UIView,它的userInteractionEnabled=YES,它会得到所有的触动,因此,
UIView
子类的视图和两个按钮以及UITableview
。在设计部分,首先是一个按钮,然后是UITableView
,然后是第二个按钮。当我单击第一个按钮(即tableview上方的按钮)时,它将获得按钮操作。但是,当我单击第二个按钮时,即UITableView
下面的按钮,它不会得到按钮操作。如果我将第二个按钮拖动到tableview位置上方,它将获得操作。请帮帮我 好吧,当你有一个UIView,它的userInteractionEnabled=YES
,它会得到所有的触动,因此,这个视图后面的任何UIView都不会被触动
您可以将解决方案与-hitTest:withEvent:
:
您需要对UITableView进行子类化,向其传递一个指向“隐藏”UIButton的指针,并在CustomTableView中覆盖-hitTest:withEvent:
,如下所示:
- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event
{
BOOL isInsideButton = CGRectContainsPoint(self.behindButton.frame, point);
return isInsideButton ? nil : [super hitTest:point withEvent:event];
}
希望这会有帮助 该按钮可能隐藏在tableview后面。实际上,该按钮位于tableview的其他位置。如果您仍然无法解决此问题,并且希望该按钮正常工作,则可以尝试创建一个子视图来包含该按钮,并将其置于前面。实际上,我的tableview没有覆盖该按钮。为了进一步澄清,我只写下了立场。按钮A(0,0,30,30)UITableView(0,30150150)和下一个按钮B(0180,30,30),即这3个按钮位于3个位置。当我点击按钮B时,它没有接到电话。如果我把这个拖到位置(50,0,30,30),它就会接到电话。也就是说,如果我把按钮放在tableview(下面)旁边,它就像一个标签。单击它时没有任何更改。如果有任何更改,请提供帮助it@hilaj也许在ButtonB的顶部还有其他视图?您是在情节提要中还是在代码中设置它?您是否使用自动布局,可能存在冲突?你可以发布你的代码和你故事板的一些截图,这会给你带来更多的启发。。