控件不能响应的情况:
1.userInteractionEnabled = NO
2.hidden = YES
3.透明度 alpha 小于等于0.01
4.子视图超出了父视图区域
子视图超出父视图,不响应的原因:因为父视图的pointInside:withEvent:方法返回了NO,就不会遍历子视图了。可以重写pointInside:withEvent:方法解决此问题。
开发中遇到这样的问题:
我在alphabackview上加了touch事件,希望点击蒙版后隐藏当前的view,但是我们发现在点击tableviewbackview 时同样隐藏了当前的view,而这并不是我们想要的,所以就有了 以下的代理方法:
这里 方法是touch手势当你点击的时候出发,当返回no的时候不相应我们的时间,只有yes的时候才相应,所以我们只需要把我们不想让相应的view拿出来return No就解决了.
-(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch{
if ([touch.view isDescendantOfView:self.tableView_back_view]) {
return NO;
}
return YES;
}