2012-06-28 9 views
10

Ich habe eine UITableViewController mit etwa 20 statische Zellen, einige dieser Zellen haben UITextField s in ihnen und einige sind nur für die Auswahl mit einem Häkchen. Die Tabelle ist etwa 1,5 Ansichten wert, so dass Scrollen erforderlich ist, um die unteren Textfelder zu erhalten.UITableViewController nicht scrollen, wenn Tastatur erscheint

Wenn ich innerhalb eines Textfelds am unteren Rand der Tabelle klicke, erscheint die Tastatur wie es sollte, aber diese erscheint dann über der Zelle/dem Textfeld.

Ich war unter dem Eindruck (von Apple Docs und anderswo), dass die Klasse UITableViewController Scrolling der Ansicht automatisch behandelt, wenn eine Tastatur in irgendeiner Ausrichtung und verschiebt die Tabellenansicht nach oben, so dass die Zelle sichtbar ist, geschieht dies nicht obwohl.

IOS 5.1, iPad Porträt.

+1

möglich duplicate of [Wie scrolle ich die UITableviewcell hoch, wenn die Tastatur erscheint?] (Http://stackoverflow.com/questions/8338737/how-to-scroll-the-guidableviewcell-scroll-up-when-the -Keyboard-erscheint) – rishi

+1

Nicht eine dup IMO, diese befasst sich mit statischen Cell TVCs –

+0

Der Link, Rishi wies auch tatsächlich für meine statische Tabelle Inhalt funktioniert. Aber wie gesagt, ich dachte, das sollte automatisch funktionieren, wenn ich UITableViewController benutze, ohne das Scrollen programmatisch zu verwalten. – GeoffCoope

Antwort

69

Stellen Sie sicher, dass, wenn Sie viewWillAppear zwingende dass Sie

[super viewWillAppear:animated]; 

rufen Wenn Sie nicht, wird die Scroll-Ansicht nicht richtig nach oben.

Swift

super.viewWillAppear(animated) 
+0

Verwenden Sie diese Methode noch nicht. danke trotzdem – GeoffCoope

+1

Das funktionierte für mich (und ich hätte das sowieso anrufen sollen). Vielen Dank. – Snips

+2

Oh! Vielen Dank, ich dachte, ich würde es nie wieder automatisch funktionieren lassen) – DanSkeel

1

Ich lief in dieser Frage selbst. Ich konvertiert nur meine Ansicht-Controller von einem UIViewController zu einem UITableViewController neben Hinzufügen des [super viewWillAppear:animated]; Anruf, müssen Sie diese Zeilen entfernen:

[self.tableView setDataSource:self]; [self.tableView setDelegate:self];

Da sie nicht mehr benötigt werden und setDelegate stört die Tastatur Scrollen Verhalten.

4

Ich fand keine dieser Antworten richtig. Nach einer Weile merke ich, dass wenn Sie einen Controller drücken, es nicht funktioniert ... aber wenn Sie es modal präsentieren .. die Tabelle wird automatisch zum verwendeten Textfeld scrollen.

Hoffen, dass jeder Zeit und Stress spart.

+0

Ich hatte ein ähnliches Problem, wo ich eine Containeransicht bin. – RyanJM

Verwandte Themen