Прокрутить вид вниз, когда клавиатура скрыта - PullRequest
1 голос
/ 11 мая 2010

Я использую вид прокрутки, чтобы переместить мой вид и показать определенные текстовые поля (которые в противном случае были бы скрыты), когда клавиатура показывает. Я в основном изменяю размер вида прокрутки, чтобы освободить место для клавиатуры, а затем плавно прокручиваю вид вверх с помощью 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», потому что в рамке вида прокрутки все еще отсутствует нижняя часть).

Проблема возникает, когда я изменяю размер рамки просмотра прокрутки к ее первоначальным размерам (что мне нужно сделать), потому что тогда прокрутка прерывается, и представление внезапно опускается на дно (так как прокручивать больше нечего). Это вызывает сбой, поэтому я не могу выполнить переход плавно.

Есть идеи, как можно опустить клавиатуру при плавной прокрутке вниз?

Должен ли я прокручивать увеличенное изображение вместо изменения его размера? Таким образом, мне не пришлось бы восстанавливать размеры рамки вида прокрутки при опускании клавиатуры, или я бы?

Большое спасибо заранее!

1 Ответ

0 голосов
/ 12 мая 2010
...