今天一个界面搭建途中。发现一个问题,tableview的cell点击相应区域不准确,需要滑动一下才能正确的点击到cell。在排除问题之后,发现是因为给页面添加的键盘收回手势事件和点击事件冲突了。
找到原因之后就好办了,在UITapGestureRecognizer 有一个代理方法。可以获取到手势点击时的当前view,只需要对这个view进行一个类型判断就可以了。代码如下:
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch {
if ([NSStringFromClass([touch.view class]) isEqualToString:@"UITableViewCellContentView"]) {
return NO;
}
return YES;
}