2012-04-06 7 views
6

Jeder möchte das UITableView verschieben, wenn die Tastatur auftaucht, aber ich suche nach einer Möglichkeit, die automatische Animation auf den Cursor zu deaktivieren, wenn die Tastatur auftaucht. Ich habe ein seltsames ruckelndes/ruckelndes/unregelmäßiges Scrollverhalten, wenn die Tastatur aufspringt und das UITableView zum Cursor scrollt (um zu verhindern, dass es blockiert wird).iOS: Disable UITableView Animation, wenn die Tastatur erscheint

In jeder meiner UITableView-Zellen ist ein UITextView enthalten. Ich mache keine anderen Animationen, wenn die Tastatur auftaucht.

An dieser Stelle möchte ich die Animation vollständig deaktivieren und manuell zu einem gewünschten CGPoint scrollen.

Vielen Dank!

+0

Ich habe ein 3-zeiliges Textfeld in einer Zelle. Ich möchte in der Lage sein, eine Zelle zur Tabelle hinzuzufügen, die Tabelle auf die Höhe zu verkleinern, die es sein sollte, wenn die Tastatur dargestellt wird, und dann die Tabellenansicht ganz nach unten scrollen zu lassen. Ich habe momentan eine intermittierende Lösung, wo ich eine Benachrichtigung für keyboardWillShow bekomme und eine .2 Sekunden Animation mache, die die Tabellenansichtshöhe schrumpft und nach Abschluss eine 0,05 Sekunden verzögerte Anfrage, um die Tabellenansicht ganz nach unten zu scrollen. Funktioniert in einigen Fällen abhängig von der Zellzahl. Brauchen Sie nur Ersthelfer, um die Tabelle nicht zu scrollen. HILFE! – cruffenach

+0

Haben Sie jemals eine Lösung für dieses Problem gefunden? Ich erlebe die gleiche Sache, in der meine Tabellenansicht richtig skaliert, aber führt dieses seltsame Springen am Ende durch. –

Antwort

8

Der automatische Scroll-Code befindet sich in tableViewController, sodass das automatische Scrollen nicht deaktiviert werden kann. Anstatt von UITableViewController abzustammen, können Sie eine Unterklasse von UIViewController erstellen und darin ein TableView verwenden. Wenn Sie bereit sind, UITableViewController selbst zu verwenden, können Sie viewWillAppear überschreiben und [super viewWillAppear] nicht aufrufen.

+1

Du bist ein Rockstar. Vielen Dank! – Jeremy

+0

Für alle anderen, die nach diesem Problem suchen und diese Antwort finden, seien Sie bitte vorsichtig. Es mag die einzige Sache sein, die erreichbar und einfach erscheint, aber es ist nie eine gute Idee, nicht innerhalb einer View-Lifecycle-Methode wie 'viewWillAppear' Super aufzurufen – simonthumper

Verwandte Themen