該篇文章摘自個人新浪博客,原文地址爲: http://blog.sina.com.cn/s/blog_dcc636350102wavx.htmlhtml
UITableView 擁有屬於本身的點擊事件,在將一個UITableView 的控件放在其它視圖上, 而且其它視圖須要添加手勢進行操做的狀況下,咱們會發現咱們點擊UITableView的cell的時候, 並無出發方法:ios
-(void)tableView:(UITableView*)tableView didSelectRowAtIndexPath:(NSIndexPath*)indexPath; 是直接進入到了手勢的方法中。 這是因爲手勢的衝突引發的,解決方法是調用UIGestureRecognizer的大力方法:-(BOOL)gestureRecognizer:(UIGestureRecognizer*)gestureRecognizershouldReceiveTouch:(UITouch *)touch;spa
在此方法中, 咱們能夠截獲所點擊的視圖,並決定是否手勢繼續向下響應:htm
咱們能夠根據UITableView的觸摸來判斷:blog
-(BOOL)gestureRecognizer:(UIGestureRecognizer*)gestureRecognizer shouldReceiveTouch:(UITouch*)touch {事件
if([NSStringFromClass([touch.viewclass])isEqual:@"UITableViewCellContentView"]){開發
returnNO;get
}博客
returnYES;it
}
也能夠根據 添加手勢的View來斷定:
-(BOOL)gestureRecognizer:(UIGestureRecognizer*)gestureRecognizer shouldReceiveTouch:(UITouch*)touch {
if ([touch.view isKindOfClass:[UIScrollView class]]) {
returnYES;
}
returnNO;
}