2016-03-20 17 views
0

Ich habe eine VC, wo ich ein UITableView erstellt und es der Hauptansicht hinzugefügt. Die Tabelle hat seinen Delegierten und seine Datenquelle zu der VC hinzugefügt:Cell Reaktionszeit in einem programmgesteuerten UITableView

choicesTableView.dataSource = self 
choicesTableView.delegate = self 

Ich kann die Tabelle richtig sehen und alles läuft reibungslos.

In cellForRowAtIndexPath Ich habe ein neues UITextView und zu Zelle erstellt:

let myTextView = UITextView(frame: CGRectMake(0, 0, myVar.sW, 100)) 

(myVar.sW ist ein referenzierte Wert Token von der Bildschirmbreite)

ich die UITextView in die Zelle gegeben :

cell.addSubview(myTextView) 

Auch hier sehe ich alles wie erwartet.

Die dunkle Seite des Mondes dieser Situation ist, dass ich jetzt das didSelectRowAtIndexPath-Ereignis nicht bekommen kann, da die UITextView die Sicht der Zelle abdeckt. Wenn ich die addSubview-Methode kommentiere, wird der didSelectRowAtIndexPath korrekt ausgelöst.

Gibt es eine Möglichkeit, UITextView die Benutzerinteraktion an die Zelle weitergeben zu lassen, ohne eine benutzerdefinierte Zellenansicht von Grund auf neu zu erstellen?

(zur Information, in dieser Phase Ich verwende nicht das Interface Builder)

Danke.

+0

Ist die Textansicht editierbar? Warum benutzt du kein Label? – Wain

+0

Ich benutze UITextView nicht zur Bearbeitung, nur für kosmetische Zwecke. Das UITextView hat die nützliche Rechtfertigungsmethode und andere interessante Dinge ... :) – RikiRiocma

Antwort

0

Die Lösung war ziemlich einfach. Ich beschloss, mein Problem, indem Sie diese Zeile hinzufügen:

myTextView.userInteractionEnabled = false 

So die Berührung durch die Ebene des UITextView passieren kann und die Zellschicht erreichen.

This Thread hat mir geholfen.