Я пробовал несколько реализаций вида прокрутки, чтобы обрабатывать присутствие клавиатуры, в том числе собственный. Я не могу заставить их работать.UIScrollView требуется только при отображении клавиатуры
У меня есть представление, которое не требует прокрутки, когда клавиатура не отображается, но как только текстовое поле является первым ответчиком, а на клавиатуре отображается некоторый контент, нужно прокручивать.
Обратите внимание, что единственное редактируемое текстовое поле является первым на экране, поэтому мне не нужно прокручивать представление, чтобы отобразить что-либо - мне просто нужно прокручивать возможности в верхней половине экрана, но только тогда, когда клавиатура отображается.
Это так близко, как я могу получить:
Я могу успешно зарегистрироваться для получения уведомлений клавиатуры. При загрузке я устанавливаю свой scrollview и размер контента на всю высоту представления. Когда клавиатура отображается, изменить размер Scrollview к первоначальной высоте минус высота клавиатуры:
scrollView.frame = CGRectMake(0, 0, 320, 416 - kbSize.height);
А скрывать, я просто сбросить его:
scrollView.frame = CGRectMake(0, 0, 320, 416);
Это почти работает. Кроме того, как только клавиатура будет отображаться, если я прокручу вниз до нижней части представления (сохраняя отображаемую клавиатуру), а затем спрячу клавиатуру с помощью клавиши возврата, когда изменяется вид прокрутки, появляется неэлегантный «прыжок» вверх экрана. Для изменения размера прокрутки нет гладкой анимированной прокрутки.
Любые идеи? Я думаю, что я взламываю это по сравнению с реализацией Apple, но это самое близкое, что у меня есть.
Попробуйте поместить ваш кадр размер в анимации блока ? –