例如:一个UIScrollView中有若干个UITextfield,为了能在空白处点击能隐藏键盘,加了UITapGestureRecognizer事件,结果导致同样在UIScrollView里的UITableView接收不到didSelectRowAtIndexPath调用消息。
这个问题是因为,手势触发事件影响了touch事件,所以tableview不可以点击。
有百度到说设置cancelsTouchesInView为NO,好像没有啥效果。
下面重写UIGestureRecognizerDelegate中的接受事件的代理
#pragmamark-UIGestureRecognizerDelegate
-(BOOL)gestureRecognizer:
(UIGestureRecognizer*)gestureRecognizershouldReceiveTouch:(UITouch*)touch{
//若为UITableViewCellContentView(即点击了tableViewCell),则不截获Touch事件
if([NSStringFromClass([touch.viewclass])isEqualToString:@"UITableViewCellContentView"]){
returnNO;
}
returnYES;
}
网友评论