Я использую вид прокрутки, чтобы переместить мой вид и показать определенные текстовые поля (которые в противном случае были бы скрыты), когда клавиатура показывает. Я в основном изменяю размер вида прокрутки, чтобы освободить место для клавиатуры, а затем плавно прокручиваю вид вверх с помощью scrollRectToVisible, который отлично работает. После этого я могу прокручивать и редактировать остальные текстовые поля, не опуская клавиатуру, что я и собираюсь сделать.
Проблема возникает, когда я снова хочу спрятать клавиатуру. Мне удалось без проблем опустить клавиатуру и прокрутить вид вниз в исходное положение, но я не смог сделать этот переход плавным.
На данный момент я использую следующее:
- (void)keyboardWillHide: (NSNotification *)notif {
CGRect topRect = CGRectMake(0, 0, 1, 1);
[scrollview scrollRectToVisible:topRect animated:YES];
scrollview.frame = CGRectMake(0, 0, scrollviewWidth, scrollviewHeight);
}
Я создаю CGRect вверху, который затем перемещаю в представление с помощью scrollRectToVisible. Это работает нормально и начинает прокрутку вправо, когда клавиатура прячется (я использую «keyboardWillHide», а не «keyboardDidHide», потому что в рамке вида прокрутки все еще отсутствует нижняя часть).
Проблема возникает, когда я изменяю размер рамки просмотра прокрутки к ее первоначальным размерам (что мне нужно сделать), потому что тогда прокрутка прерывается, и представление внезапно опускается на дно (так как прокручивать больше нечего). Это вызывает сбой, поэтому я не могу выполнить переход плавно.
Есть идеи, как можно опустить клавиатуру при плавной прокрутке вниз?
Должен ли я прокручивать увеличенное изображение вместо изменения его размера? Таким образом, мне не пришлось бы восстанавливать размеры рамки вида прокрутки при опускании клавиатуры, или я бы?
Большое спасибо заранее!