#objective-c #uitableview #ios7
#objective-c #uitableview #ios7
Вопрос:
У меня есть табличное представление, и как только uikeyboard отклоняет последнее текстовое поле с помощью клавиши возврата, наборы содержимого табличного представления, похоже, становятся неуместными.
Здесь ячейки табличного представления правильно совпадают с этим фрагментом кода
self.edgesForExtendedLayout = UIRectEdgeAll;
self.tableView.contentInset = UIEdgeInsetsMake(0.0, 0.0, CGRectGetHeight(self.navigationController.toolbar.frame) 5.0, 0);
Тогда вот последняя ячейка
Затем я нажимаю на последнее текстовое поле в представлении, и для выравнивания ячейки по верхней части клавиатуры я должен использовать этот код
[self.tableView setContentInset:UIEdgeInsetsZero];
Теперь, когда я отключаю клавиатуру, первая ячейка выглядит так
И последняя ячейка выглядит так
Если я добавлю этот код, когда клавиатура будет отключена, первая ячейка будет выглядеть как первое изображение, что хорошо, но из-за этого последняя ячейка выглядит еще хуже, поскольку нижняя часть представления составляет половину пятой ячейки (всего десять ячеек).). Если кто-нибудь может помочь, я был бы очень признателен. Спасибо.
[self.tableView setContentInset:UIEdgeInsetsMake(self.navigationController.navigationBar.bounds.size.height [[UIApplication sharedApplication] statusBarFrame].size.height, 0.0, 0.0, 0.0)];
Ответ №1:
Итак, я понял это, получив высоту клавиатуры и панели инструментов и обновив набор содержимого в созданном мной пользовательском методе.
[self.tableView setContentInset:UIEdgeInsetsMake(self.navigationController.navigationBar.bounds.size.height [UIApplication sharedApplication].statusBarFrame.size.height, 0.0, keyboardHeight 5.0, 0.0)];
На всякий случай, если кто-то сочтет это полезным, я установил уведомление в viewDidLoad
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(getKeyboardHeight:)
name:UIKeyboardDidShowNotification
object:nil];
Затем в моем getKeyboardHeight
методе
keyboardHeight = [[[notification userInfo] objectForKey:UIKeyboardFrameBeginUserInfoKey] CGRectValue].size.height;
keyboardHeight = self.navigationController.toolbar.frame.size.height;