1.获取事件响应者(即当前点击位置的响应视图)
可重写视图的此方法,改变某些视图的响应位置或进行事件处理
/**重写表视图的事件响应方法,实现点击任意不响应事件的位置收起键盘*/
- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event
{
id view = [super hitTest:point withEvent:event];
if (!([view isKindOfClass:[UITextField class]] || [view isKindOfClass:[UIButton class]] || ([view isKindOfClass:NSClassFromString(@"UITableViewCellContentView")] && [self.delegate respondsToSelector:@selector(tableView:didSelectRowAtIndexPath:)])))
{
[self.superview endEditing:YES];
}
return view;
}
2.获取当前触摸事件
当视图不存在其他事件处理,可直接在此方法中处理点击响应
/**获取点击的点以及响应的视图*/
-(void) touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
{
UITouch *touch = [touches anyObject];
/**点触位置的响应视图*/
UIView *responder = touch.view;
}