1. 程式人生 > >UITapGestureRecognizer與UITableView同在一個頁面導致didSelectRowAtIndexPath方法不響應

UITapGestureRecognizer與UITableView同在一個頁面導致didSelectRowAtIndexPath方法不響應

iges nbsp alt ati dexp 需求 button bool tin

今天測試給我提了一個需求,就是在做用戶篩選的時候,點擊空白區域,回收篩選列表,我用了手勢UITapGestureRecognizer,但是這時就出現了問題,因為列表是動態添加的,所以不能指定空白區域的frame,並且導致了UITableView的didSelectRowAtIndexPath方法不響應,通過百度,我發現原來是UITapGestureRecognizer的didSelectRowAtIndexPath的響應。

解決方法:

#pragma mark - UIGestureRecognizerDelegate

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch

{

NSLog(@"gestureRecognizer = %@",NSStringFromClass([touch.view class]));

if ([NSStringFromClass([touch.view class]) isEqualToString:@"UIView"])

{

return NO;

}

else if ([NSStringFromClass([touch.view class]) isEqualToString:@"InvestDetailSortButton"])

{

return NO;

}

return YES;

}

通過打印,找到能點擊的區域的類名,通過類名來區分,這樣就可以了。

UITapGestureRecognizer與UITableView同在一個頁面導致didSelectRowAtIndexPath方法不響應