Durch Klicken auf eine benutzerdefinierte Kopfzeile des UITableView-Abschnitts wird didSelectRow aufgerufen: in der ersten Zeile des Abschnitts

8

Ich habe eine benutzerdefinierte viewForHeaderInSection auf einem UITableView - nennen wir es HeaderCell (eine einfache Unterklasse von UITableViewCell ), die das seltsamste Verhalten hat:

  • Wenn ich auf die Header-Sektion klicke :

    • es löst die tableView:didSelectRowAtIndexPath: mit der indexPath der ersten UITableViewCell dieser Sektion aus. Als würde ich auf die Zelle klicken, aber nein. Ich klicke auf die Kopfzeile.

Die Sache ist, wenn ich diese benutzerdefinierte HeaderCell auf viewForHeaderInSection durch eine einfache UIView ersetze, passiert das nicht mehr! Ich habe nach Aktionen gesucht, die mit diesem xib und seiner Klasse verknüpft sind. Es konnte keine Aktion addTarget: oder keine xib gefunden werden.

Anderer merkwürdiger Faktor: es passiert nicht in der ersten HeaderCell (Abschnitt 0) passiert nur im Abschnitt & gt; = 1.

HINWEIS: Ich habe eine Schnellkorrektur dafür, aber es ist etwas riskant für die spätere Unterstützung

Bei HeaderCell class muss ich nur implementieren:

%Vor%

Dies ist die letzte Lösung. Jeder hat dieses Verhalten schon einmal entdeckt?

    
Carlos Ricardo 05.09.2013, 11:54
quelle

2 Antworten

4

Sie sollten keine Unterklassen von UITableViewCell für Kopf- / Fußzeilen verwenden. Verwende UITableViewHeaderFooterView (wenn du mit & gt; = iOS6 leben kannst) oder einfach UIView ansonsten.

    
Mike Pollard 18.11.2013, 10:21
quelle
0

Sie können dies über die Methode setEnableUserInteraction tun. Bitte beziehen Sie sich auf den angegebenen Code,

%Vor%

Hoffe das wird dir helfen:)

    
Augustine P A 05.09.2013 12:40
quelle

Tags und Links