2017-03-23 55 views
1

我已經在UIView上添加了UITableView。使用下面的代碼添加自來水姿態的UIView:didSelectRowAt沒有被調用

let tapGesture = UITapGestureRecognizer(target: self, action: #selector(tapToClose)) 
    tapGesture.cancelsTouchesInView = false 
    tapGesture.numberOfTapsRequired = 1 
    vwForTouchClose.addGestureRecognizer(tapGesture) 

,當我在小區didSelectRowAt沒有得到所謂的手勢,而不是選擇的方法被調用。 下面是我們的代碼在didSelectRowAt:

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { 
    tableView.deselectRow(at: indexPath, animated: true) 

} 

請幫我解決這個問題。

+0

你能在你的代碼中添加適當的視圖層次,並在其中查看您添加tapGesture –

+0

的UIView - > UITableView的 – user2931321

+0

檢查UITableView'的'該委託設置或不還加您當前添加的'didSelectRow'方法的代碼。 –

回答

2

您必須取消UIGestureRecognizer在TableView上的觸摸。使用手勢識別器的委託方法:

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch 
{ 
    if ([touch.view isDescendantOfView:yourTableView]) { 

     return NO; 
    } 

    return YES; 
} 
+0

@thewarrior謝謝!這解決了我的問題。添加tapGesture.delegate = self和UIGestureRecognizerDelegate協議。 – user2931321

+0

歡迎伴侶:) –