У меня есть приложение, в котором есть текстовые поля и одно текстовое изображение, но когда я получаю клавиатуру, она скрывает нижние текстовые поля. Как бы я это сделал.Прокрутка при активации клавиатуры
Я пробовал:
.m:
- (void)textFieldDidBeginEditing:(UITextField *)sender {
CGSize content = _scrollView.contentSize;
_scrollView.contentSize = CGSizeMake(content.width, content.height + 200);
svos = _scrollView.contentOffset;
CGPoint pt;
CGRect rc = [sender bounds];
rc = [sender convertRect:rc toView:_scrollView];
pt = rc.origin;
pt.x = 0;
pt.y -= 200;
[_scrollView setContentOffset:pt animated:YES];
}
- (IBAction)textFieldShouldReturn:(UITextField *)textField {
CGSize content = _scrollView.contentSize;
_scrollView.contentSize = CGSizeMake(content.width, content.height - 200);
[_scrollView setContentOffset:svos animated:YES];
[textField resignFirstResponder];
}
.h:
CGPoint svos;
Хотя нижние текстовые поля по-прежнему скрыты это прокручивать до и видимых
То, что вы хотите достичь, не так просто. Вы получили исходное поле текстового поля отправителя, но только увеличиваете его на 60, таким образом, нижние текстовые поля покрываются клавиатурой. Вам нужно будет знать высоту клавиатуры и рассчитать расстояние, чтобы двигаться вверх. Проверьте это [http://stackoverflow.com/questions/1126726/how-to-make-a-uitextfield-move-up-when-keyboard-is-present?rq=1](http://stackoverflow.com/questions/1126726/how-to-make-a-uitextfield-move-up-when-keyboard-is-present? rq = 1) – Rick
@Rick Это работает, кроме того, когда вы изменяете, какой элемент вы редактируете, происходит сбой приложения и если содержание должно быть низким, его нельзя прокрутить до –
. Вы используете scrollview, вы можете расширить его contentSize пустым пространством, чтобы перейти к нижнему текстовому полю. Что касается того, почему приложение разбилось, вам нужно будет уточнить. – Rick