touchesEnded不响应主要存在以下几种情况
case 1 : userInteractionEnabled
部分控件如UIImageView,userInteractionEnabled默认为NO,需要将其设置为YES;
break;
case 2 : 控件被其他控件所遮盖
[[self nextResponder] touchesBegan:touches withEvent:event] //这时需要设置消息链穿透
break;
case 3 : UITapGestureRecognizer
UITapGestureRecognizer如果使用在子控件的父控件上,那么子控件的touchesEnded不会执行,而是执行touchesCanceled,并且touchesBegan会延迟执行,会明显感觉到延迟。
UITouch *touch = [touches anyObject];
if([touch tapCount] == 1) {
// do sth
}// 解决办法
break;
default : 其他的评论补充
break;