子视图阻止父视图TouchesBegan?

Ser*_*nce 3 iphone cocoa-touch uitableview ios

我的视图有一个UITableViewas subview,它完全覆盖了父视图.当我尝试touchesBegan为父视图实现时,我注意到该方法根本没有被调用.无论如何都要覆盖这种行为?

Muh*_*mam 12

实际上有一种方法可以覆盖这种行为.您需要扩展阻止父视图和覆盖touchesBegan方法的每个子对象,如下所示:

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
   [super touchesBegan:touches withEvent:event];
   [self.nextResponder touchesBegan:touches withEvent:event];
}
Run Code Online (Sandbox Code Playgroud)

例如,如果UIScrollView中有一个UIButton,它位于UIView中,那么您需要创建两个自定义类.一个扩展UIButton和其他扩展UIScrollView.在每个自定义类中,您需要添加上述方法定义.完成这些更改后,您将能够touchesBegan在父UIView中接收事件.