Я думаю, что упускаю что-то очевидное и буду благодарен за ответ.
У меня есть вид с двухсекционным сгруппированным табличным представлением, каждый раздел имеет одну строку и текстовое представление, высоты строк 335 и 140. Это позволяет для поля с приятно закругленными углами набирать текст при появлении клавиатуры (Раздел 140 высот) и когда клавиатура распущена, хорошая коробка для чтения текста (заметки); Большую часть времени используется без клавиатуры.
Я также добавил панель инструментов внизу экрана для прокрутки вверх над клавиатурой. Кнопка на панели инструментов закрывает клавиатуру. Эта последняя часть прекрасно работает, когда клавиатура движется вверх и вниз с помощью уведомления и следующего кода в методе keyboardWillShow:
[UIView beginAnimations:@"showKeyboardAnimation" context:nil];
[UIView setAnimationDuration:0.50];
self.view.frame = CGRectMake(self.view.frame.origin.x,
self.view.frame.origin.y,
self.view.frame.size.width,
self.view.frame.size.height - 216);
[UIView commitAnimations];
Но с помощью приведенного выше кода 2 раздела tableView остаются без прокрутки, перемещаются только панель инструментов и клавиатура. С помощью следующего кода (найденного в предыдущих сообщениях) перемещаются и панель инструментов, и разделы tableView.
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:0.50];
CGRect rect = self.view.frame;
rect.origin.y -= 216;
self.view.frame = rect;
[UIView commitAnimations];
Теперь я знаю, что мне нужно настроить числа, чтобы получить все так, как я хочу, но мой первый вопрос: что существенно отличается между двумя наборами кода, которые разделы перемещают во втором, а не в первом? Панель инструментов также перемещается со вторым кодом.
Второй вопрос: смогу ли я прокрутить секцию меньшей высоты от экрана к клавиатуре и одновременно переместить панель инструментов вверх на 216?
Спасибо