У меня есть один вид на моей раскадровке, чтобы показать форму регистрации пользователя, поэтому она выглядит так: main view-> прокрутка в представлении-> просмотр содержимого-> два текстовых поля и кнопка входа в систему верхняя и одна кнопка регистрации внизу представления. Я использую автозапуск, а нижняя кнопка имеет ограничение на нижнее пространство. Когда я нажимаю на текстовое поле и клавиатуру, я хотел бы прокрутить представление, чтобы изменить размер на видимый прямоугольник, но размер содержимого должен оставаться прокруткой вниз до кнопки регистрации, но кнопка перемещается вверх, когда изменяется размер прокрутки. Как я мог делать то, что хочу?iOS AutoLayout с scrollview и клавиатурой
Я использую этот код, когда появится клавиатура:
- (void)keyboardWillShow:(NSNotification *)aNotification
{
NSDictionary *info = [aNotification userInfo];
NSValue *kbFrame = [info objectForKey:UIKeyboardFrameEndUserInfoKey];
NSTimeInterval animationDuration = [[info objectForKey:UIKeyboardAnimationDurationUserInfoKey] doubleValue];
CGRect keyboardFrame = [kbFrame CGRectValue];
CGSize s = self.scrollView.contentSize;
CGFloat height = keyboardFrame.size.height;
self.scrollViewBottomLayoutConstraint.constant = height;
[UIView animateWithDuration:animationDuration animations:^{
[self.view layoutIfNeeded];
[self.scrollView setContentSize:s];
}];
}
Спасибо. Оно работает. –
Отличный ответ; отлично работает для меня! Благодаря! –
приятный и простой, но одна проблема заключается в том, что полосы прокрутки не изменяются до видимой части вида прокрутки/таблицы/коллекции. –