假如,父视图是全屏的半透明viewA,然后在其上有一个相对较小的viewB 则可以根据以下的方法来获取点击viewA时有事件发生,点击viewB没有事件发生
- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event {
//touches,拿到触摸屏上的手指所对应的UITouch对象
UITouch *touch = [touches anyObject];
//拿到手指在self上的坐标
CGPoint pt = [touch locationInView:viewA];
if ((pt.y < viewB.frame.origin.y) || (pt.y > (viewB.frame.origin.y + CGRectGetHeight(viewB.bounds))) || (pt.x < viewB.frame.origin.x) || (pt.x > (viewB.frame.origin.x + CGRectGetWidth(viewB.bounds)))) {
[self btnClose];//事件
}
}