Я играл с UITableView
в течение некоторого времени, и после нажатия клавиши клавиатуры и проблемы с прокруткой я решил решить ее с помощью UITableViewController
и воспользоваться автоматической прокруткой при появлении клавиатуры. К сожалению, это не происходит для меня, и я не могу понять, почему, я перепробовал много вещей и сдался, чтобы спросить сообщество.
Вот что у меня есть:
- Обычная
UIViewController
обработка UIView
( MyView.xib ) (это
также корневой вид)
- Обычная
UITableViewController
обработка
UITableView
в отдельном XIB
файле (MyTable.xib)
- Обычный
UITableViewCell
был перетащен в (MyTable.xib) и расположен рядом с UITableView
. У этого UITableViewCell
нет собственного класса. Также есть розетка, подключенная к UITableViewController
классу.
- Обычный
UITextField
сидит под UITableViewCell
- Я связал личность владельца файла в MyTable.xib с
UITableViewController
классом
- Я подключил делегат и источник данных
UITableView
к владельцу файла
Так выглядит в IB в MyTable.xib
UITableView
UITableViewCell
Поэтому, когда я генерирую строки таблицы в UITableViewController, первые пять строк помещаются в очередь как обычные ячейки, а для последней строки я возвращаю свой вывод myCell (UITableViewCell). Это тот, который имеет UITextField.
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
if (indexPath.row == 5) return myCell;
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
}
cell.textLabel.text = [NSString stringWithFormat:@"Test"];
return cell;
}
Наконец, в моих ViewController
viewDidLoad
я создаю экземпляр UITableViewController
и отображаю его. Он успешно показывает 5 строк и мой пользовательский внизу. Все в основном виде, но ...
- (void)viewDidLoad
{
[super viewDidLoad];
mtc = [[MortgageTableController alloc] initWithNibName:@"MyTable" bundle:nil];
mtc.view.frame = CGRectMake(0, 44, 320, 375);
[self.view addSubview:mtc.view];
}
Проблема, с которой я столкнулся, заключается в том, что, если я нажму на UITextField
, я не увижу, как автоматически прокручивается таблица. Я думал, что это было одним из преимуществ использования UITableViewController
, или, может быть, я здесь что-то не так делаю.
Я также попытался выбрать и / или прокрутить таблицу до строки, но безуспешно.