didSelectRowAtIndexPath wird nicht aufgerufen

7

Ich füge UIScrollView in UITableViewCell hinzu, aber wenn ich auf scroll view klicke, wurde die select Methode nicht aufgerufen.

%Vor%

Ich füge die Bildlaufansicht in contentView der Zelle hinzu, habe aber noch keine Auswahlmethode ausgewählt.

%Vor%     
vntstudy 01.10.2013, 09:28
quelle

3 Antworten

12

Weil scrollView sich über Cell überlappt ... Der beste Weg ist das Hinzufügen von tap Geste auf UIScrollView , wie,

%Vor%

Fügen Sie obigen Code in cellForRowAtIndexPath method hinzu und schreiben Sie eine Gestenaktionsmethode wie

%Vor%

Hier oben in der Geste (Aktion) -Methode können Sie indexPath genauso erhalten wie didSelectRowAtIndexPath .

    
iPatel 01.10.2013, 09:37
quelle
26

Der Grund dafür, dass Ihre Tabellenzelle die Berührungen nicht erkennen kann, liegt daran, dass die scrollView in Ihrer Zelle die Berührungen abfängt und sie nicht an die Tabellenzelle weiterleitet, so dass die tabellarische Delegate-Funktion aufgerufen werden kann.

Eine einfachere Lösung besteht darin, eine Unterklasse von UIScrollView zu erstellen und die scrollView für Ihre Zelle auf diese Unterklasse zu setzen. überschreiben Sie diese Methoden in der Scrollview-Unterklasse

%Vor%

Was grundsätzlich überprüft, ob die Bildlaufansicht gezogen wird, und wenn es nicht geht, übergibt es alle Berührungsereignisse an seine Superansicht, in diesem Fall die Zellinhaltsansicht.

Das behebt ein ähnliches Problem für mich, hoffe das hilft.

Prost.

    
NavinDev 18.05.2014 18:50
quelle
7

Schnell 2

%Vor%

Schnell 3

%Vor%

Vergessen Sie nicht, die Klasse UIScrollViewSuperTaps Ihrer Scroll-Ansicht im Storyboard oder im Code zuzuordnen, je nachdem, wie Sie sie erstellt haben.

    
Maklaus 06.09.2015 04:59
quelle