我有一个 UIView
子类 View 和 2 个按钮以及 View 内的 UITableview
。在设计部分,首先是一个按钮,然后是 UITableView
,然后是第二个按钮。当我单击第一个按钮(即 tableview 上方的按钮)时,它会执行按钮操作。但是当我点击 UITableView
下方的第二个按钮时,它没有获得按钮操作。如果我将第二个按钮拖到 tableview 的位置上方,它就会执行操作。请帮助我!
最佳答案
好吧,当你有一个带有 userInteractionEnabled = YES
的 UIView 时,它会获得所有的触摸,因此,这个 View 后面的任何 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];
}
希望对您有所帮助。
关于ios - UIButton 操作在 UIView 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31355746/