С iOS SDK:
У меня есть UIView
с UITextField
s, которые вызывают клавиатуру. Мне нужно, чтобы я мог:
Разрешить прокрутку содержимого UIScrollView
, чтобы увидеть другие текстовые поля после вызова клавиатуры
Автоматически «прыгать» (путем прокрутки вверх) или сокращения
Я знаю, что мне нужен UIScrollView
. Я попытался изменить класс моего UIView
на UIScrollView
, но я все еще не могу прокрутить текстовые поля вверх или вниз.
Мне нужны и UIView
, и UIScrollView
? Один входит в другой?
Что необходимо реализовать для автоматической прокрутки к активному текстовому полю?
В идеале, максимально возможная настройка компонентов будет выполнена в Интерфейсном Разработчике. Я хотел бы написать код только для того, что ему нужно.
Примечание: UIView
(или UIScrollView
), с которым я работаю, вызывается панелью вкладок (UITabBar
), которая должна функционировать как обычно.
Редактировать: я добавляю полосу прокрутки только для того, когда клавиатура появляется. Хотя это и не нужно, я чувствую, что он обеспечивает лучший интерфейс, потому что тогда пользователь может, например, прокручивать и изменять текстовые поля.
У меня это работает, когда я меняю размер кадра UIScrollView
, когда клавиатура поднимается и опускается. Я просто использую:
-(void)textFieldDidBeginEditing:(UITextField *)textField {
//Keyboard becomes visible
scrollView.frame = CGRectMake(scrollView.frame.origin.x,
scrollView.frame.origin.y,
scrollView.frame.size.width,
scrollView.frame.size.height - 215 + 50); //resize
}
-(void)textFieldDidEndEditing:(UITextField *)textField {
//keyboard will hide
scrollView.frame = CGRectMake(scrollView.frame.origin.x,
scrollView.frame.origin.y,
scrollView.frame.size.width,
scrollView.frame.size.height + 215 - 50); //resize
}
Однако это автоматически не «сдвигает» и не центрирует нижние текстовые поля в видимой области, что мне бы очень хотелось.