UIButton动作不会在UIView中工作



我有一个视图的UIView子类和2个按钮和UITableview内的视图。在设计部分,先按一个按钮,然后是UITableView,然后是第二个按钮。当我点击第一个按钮(也就是tableview上面的按钮),它获得按钮动作。但是当我点击第二个按钮,即UITableView下面的按钮时,它没有得到按钮动作。如果我把第二个按钮拖到tableview的位置上面它就会得到动作。请帮帮我。

当你有一个带有userInteractionEnabled = YES的UIView时,它会获得所有的触摸,因此,这个视图后面的任何UIView都不会被触摸。

您可以使用- hitTest:withEvent::

的解决方案

你需要子类化你的UITableView,传递一个指针到你的UITableView后面,并在你的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];
}

希望它会有所帮助。

最新更新