Com o SDK do iOS:
Eu tenho um UIView
com UITextField
s que exibem um teclado. Eu preciso que ele seja capaz de:
Permitir a rolagem do conteúdo do
UIScrollView
para ver os outros campos de texto assim que o teclado for aberto"Salte" automaticamente (rolando para cima) ou diminua
Eu sei que preciso de um UIScrollView
. Tentei alterar a classe da minha UIView
para uma, UIScrollView
mas ainda não consigo rolar as caixas de texto para cima ou para baixo.
Preciso de um UIView
e de um UIScrollView
? Um entra no outro?
O que precisa ser implementado para rolar automaticamente para o campo de texto ativo?
Idealmente, o máximo possível da configuração dos componentes será feito no Interface Builder. Eu gostaria de escrever apenas o código para o que precisa.
Nota: o UIView
(ou UIScrollView
) com o qual estou trabalhando é apresentado por uma barra de tabulação ( UITabBar
), que precisa funcionar normalmente.
Editar: estou adicionando a barra de rolagem apenas para quando o teclado aparecer. Mesmo que não seja necessário, sinto que ele fornece uma interface melhor, porque então o usuário pode rolar e alterar caixas de texto, por exemplo.
Eu tenho que trabalhar onde eu altero o tamanho do quadro UIScrollView
quando o teclado sobe e desce. Estou simplesmente usando:
-(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
}
No entanto, isso não "move para cima" ou centraliza automaticamente os campos de texto inferiores na área visível, o que eu realmente gostaria.