2017-06-15 5 views
1

Ich habe einen UIViewController erstellt, der zwei Ansichten enthält (Oben, Unten), Die Ansicht von Unten wird beim Klicken auf searchBar ganz nach oben erweitert. (bottomView height expandiert, topView height wird kleiner).didSelectRowAt indexPath wird nicht aufgerufen

func searchBarShouldBeginEditing(_ searchBar: UISearchBar) -> Bool { 
    self.expandBottomView() 
    return true 
} 

func expandBottomView() { 
    let heightToAdd = TopView.frame.height - numOfRequestsTitle.frame.height 

    RecomandFriendHeight.constant += heightToAdd 
    UIView.animate(withDuration: 0.5) { 
     self.view.layoutIfNeeded() 
    } 

    topTableView.isUserInteractionEnabled = false 
} 

Beide Ansicht enthalten Tableviews (topTableView, BottomTableView) alle Teilnehmer gesetzt ich überprüft. BottomView Enthält eine weitere Schaltfläche zum Minimieren der BottomView bei Bedarf.

topTableViewCell enthält zwei Schaltflächen und zwei Beschriftungen. bottomTableViewCell enthält ein Label und eine imageView.

Das Problem ist keine der tableViews Zellen ruft didSelectRowAt.

+0

Um welche Klasse die Delegierten eingestellt? – CoderFrom94

+0

an den UIViewController, der die TopView und BottomView enthält. –

+0

können Sie mehr Code zur Verfügung stellen? Ich möchte sehen, dass die Delegaten und die Datenquelle sowohl für TableViews als auch für die Deklaration der didSelectRowAt-Methode festgelegt werden. – CoderFrom94

Antwort

0

Wenn Sie eine Schaltfläche zu einer Zelle hinzufügen didSelectAt nicht beim Tippen auf die Schaltfläche aufgerufen. In diesem Fall haben Sie einen Selektor auf diese Schaltfläche innerhalb cellForRowAt hinzuzufügen: zu

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { 
     let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) as! customcell 
     cell.btn.addTarget(self, action: #selector(clickedCell), for: .touchUpInside) 
     return cell 

    } 

und Umsetzung dieser Selektor Methode

func clickedCell(_ sender : UIButton) { 
     print("clicked") 
} 
0

Machen
topTableView.isUserInteractionEnabled = true

Verwandte Themen