Ответ 1
Убедитесь, что если вы переопределяете viewWillAppear
, который вы вызываете
[super viewWillAppear:animated];
Если вы этого не сделаете, прокрутка не будет правильно прокручиваться.
Swift
super.viewWillAppear(animated)
У меня есть UITableViewController
с примерно 20 статическими ячейками, некоторые из этих ячеек имеют UITextField
внутри них, а некоторые - только для выбора с помощью галочки. Таблица составляет около 1,5 просмотров, поэтому прокрутка требуется для получения нижних текстовых полей.
Когда я нажимаю внутри текстового поля в нижней части таблицы, клавиатура появляется, как следует, но это появляется над ячейкой/текстовым полем.
У меня было впечатление (из документов Apple и в других местах), что класс UITableViewController
обрабатывает прокрутку представления автоматически, когда клавиатура появляется в любой ориентации и сдвигает таблицу вверх, чтобы ячейка была видна, это не все же происходит.
IOS 5.1, портрет iPad.
Убедитесь, что если вы переопределяете viewWillAppear
, который вы вызываете
[super viewWillAppear:animated];
Если вы этого не сделаете, прокрутка не будет правильно прокручиваться.
Swift
super.viewWillAppear(animated)
Я нашел, что эти ответы не верны. Через некоторое время я замечаю, что если вы нажмете контроллер, он не сработает... но если вы представите его по-разному, таблица автоматически перейдет к используемому текстовому полю.
Надеюсь, что это сэкономит время и напряжение любому.
Я столкнулся с этим вопросом сам. Я просто преобразовал свой контроллер представления из UIViewController в UITableViewController в дополнение к добавлению вызова [super viewWillAppear:animated];
, вам нужно будет удалить следующие строки:
[self.tableView setDataSource:self];
[self.tableView setDelegate:self];
Поскольку они больше не нужны, и setDelegate вмешивается в поведение прокрутки клавиатуры.