У меня есть пользовательский унаследованный класс UIView
с UITableView
внутри него в качестве единственного подвида. Я пытаюсь имитировать обычную функциональность UITableViewController
, когда отображается клавиатура, чтобы настроить contentInset
и scrollIndicatorInsets
табличного представления на высоту клавиатуры. Это мой метод, который вызывается, когда клавиатура отображается из моего пользовательского класса UIView
:
- (void)keyboardDidShow:(NSNotification*)notification
{
NSDictionary* info = [notification userInfo];
CGSize kbSize = [[info objectForKey:UIKeyboardFrameEndUserInfoKey] CGRectValue].size;
_tableView.contentInset = UIEdgeInsetsMake(0.0, 0.0, kbSize.height, 0.0);
_tableView.scrollIndicatorInsets = _tableView.contentInset;
}
Это работает в определенной степени, но по какой-то причине клавиатура все еще перекрывается с представлением таблицы, может быть, на десять или около того пикселей.
Я думаю, что это как-то связано с тем, что не учитывается другая геометрия экрана, но я не понимаю, как это может быть. Высота клавиатуры должна быть именно такой, какая мне нужна, потому что tableView растягивается до самого низа экрана. Любые идеи?