MonoTouch - UITableView scrollen erkennen

7

Ich habe eine MonoTouch iPhone App mit einem UITableViewController als Hauptansicht-Controller.

Ich versuche zu erkennen, wenn die Tabellenansicht mit dem Code gescrollt wird:

%Vor%

wobei TableViewScrolled(object sender, EventArgs e) { } meine Methode ist, die aufgerufen wird. Aber es kann das TableViewScrolled() aus irgendeinem Grund nicht aufrufen.

Hat jemand damit Erfahrung?

    
Brett 27.02.2012, 01:22
quelle

3 Antworten

6

@ Krumelurs Kommentar zu der vorherigen Antwort ist ein sehr guter Punkt und die IMO hätte eine Antwort sein sollen (kein Kommentar).

Der Punkt ist, dass, wenn Sie Delegate (oder WeakDelegate ) auf Ihre UITableView setzen, die Ereignisse nicht mehr funktionieren.

Warum? Um diese Ereignisse zu implementieren, erstellt MonoTouch einen eigenen internen Delegattyp für UIScrollView (das übergeordnete Element von UITableView ), wobei er die Methoden (des Delegaten) überschreibt und sie als verfügbar macht , mehr natürlich (in .NET), Ereignisse innerhalb des Typs.

Dies bedeutet effektiv, dass Sie diese UITableView -Ereignisse nicht mit Ihrem eigenen Delegaten UITableViewDelegate type mischen können (da der letztere den vorherigen überschreibt).

    
poupou 28.02.2012, 00:33
quelle
13

Meine Antwort ist nicht wirklich nur das Scrollen , sondern aufgrund der Tatsache, dass ich eine ganze Stunde damit verbracht habe mit einem Problem zu kämpfen, das durch das Scrollen verursacht wurde, Ich habe mich entschieden, hier eine Antwort zu schreiben.

Also, das Problem für mich war, dass nach dem Abonnieren:

%Vor%

meine überschriebenen Methoden der geerbten Klasse UITableViewDataSource:

%Vor%

funktioniert nicht mehr (wurde nicht aufgerufen) . Was war ... offensichtlich, ziemlich unerwartet!

Also, ich musste überschreiben

%Vor%

im selben Datenquellen-Delegaten anstatt das für ein vorhandenes Ereignis in der Tabellenansicht zu abonnieren.

Ich hoffe, jemand wird nicht in solche Schwierigkeiten geraten!

    
Agat 04.07.2013 15:36
quelle
3

Lesen Sie diese Dokumentation: UIScrollViewDelegate

Sie können Folgendes verwenden:

%Vor%

oder

%Vor%

Viel Glück, Nathan

    
Nathan 27.02.2012 01:28
quelle