Die beste Methode, um eine Zeile nach dem Einfügen auszuwählen?

8

Ich arbeite an einer iOS-App mit der navigationsbasierten CoreData-Vorlage. Ich möchte eine Zeile nach dem Einfügen in die Tabellenansicht auswählen und zu einer sichtbaren Zeile scrollen . Im Idealfall möchte ich es auswählen, abwählen und erneut auswählen, um eine Art blinkenden Effekt zu erhalten.

Da ich die Methode verwende, die die Vorlage vorsieht, nämlich:

%Vor%

Ich bin ein wenig verwirrt und weiß nicht, wo ich diesen Auswahlcode einfügen soll.
Wenn ich ein
[tableView selectRowAtIndexPath:<#(NSIndexPath *)#> animated:<#(BOOL)#> scrollPosition:<#(UITableViewScrollPosition)#>]
setze  in
- (void)controllerDidChangeContent:(NSFetchedResultsController *)controller ,
es wählt die Zeile aus, hebt sie aber sofort wieder auf und das Scrollen verhält sich auch nicht so, wie es sollte.

    
bijan 02.07.2011, 20:35
quelle

4 Antworten

3

in der Methode controller:didChangeObject:atIndexPath:forChangeType:newIndexPath: Ändere diesen Abschnitt:

%Vor%

und fügen Sie Methode von UIScrollViewDelegate hinzu:

%Vor%

Denken Sie daran, die Variable insertIndexPath hinzuzufügen.

    
alhcr 03.07.2011 01:34
quelle
3

Ich habe ein ähnliches Problem gelöst. Ich habe das Element am Anfang der Tabelle eingefügt und wollte es direkt danach auswählen.

Schritt 1. - Erstellen Sie einen Schalter, um den Status beizubehalten, wenn er die erste Zeile auswählen soll

%Vor%

Schritt 2. - Schalten Sie beim Einfügen

auf JA %Vor%

Schritt 3. - Erstellen Sie eine Methode zur Auswahl der ersten Zeile

%Vor%

Schritt 4. - Rufen Sie die Methode auf, um die Zeile direkt nach dem Aktualisieren der Tabelle auszuwählen

%Vor%

Das sind alle Leute .. Wenn Sie eine andere Zeile auswählen möchten, speichern Sie newIndexPath auch im Klassenparameter. Das ist alles. Ich hoffe es hilft dir. Cia!

    
Lweek 24.11.2013 13:24
quelle
2

Meistens gleiche Antwort wie oben, aber mit korrigierter Platzierung des Aufrufs von scrollToRowAtIndexPath

in der Methode controller:didChangeObject:atIndexPath:forChangeType:newIndexPath: Ändere diesen Abschnitt:

%Vor%

Wenn der FRC-Code des Kessels verwendet wird, kann nicht zum neu eingefügten Index gescrollt werden, bis die Aktualisierung der Tabelle abgeschlossen ist

Mach das in der Methode - (void)controllerDidChangeContent:

%Vor%

und fügen Sie Methode von UIScrollViewDelegate hinzu:

%Vor%

Denken Sie daran, newInsertedIndex-ivar

hinzuzufügen     
shazgoose 11.04.2013 21:54
quelle
0

Das alles hat nicht für mich funktioniert. Was ich getan habe, war:

  • Wenn ich ein neues Objekt erstelle, erinnere ich mich an eine Instanzvariable _newInstance
  • Wenn das Objekt gespeichert oder die Erstellung abgebrochen wurde, lösche ich es: _newInstance = nil;
  • in controllerDidChangeObject Ich wähle die Zeile:

    %Vor%
Markus 24.04.2016 20:06
quelle

Tags und Links