Con iOS SDK:
Ho un UIView
con UITextField
s che portano una tastiera. Ne ho bisogno per essere in grado di:
Consenti lo scorrimento del contenuto di
UIScrollView
per visualizzare gli altri campi di testo una volta visualizzata la tastiera"Salta" automaticamente (scorrendo verso l'alto) o accorciando
So che ho bisogno di un UIScrollView
. Ho provato a cambiare la mia classe UIView
in a UIScrollView
ma non riesco ancora a scorrere le caselle di testo verso l'alto o verso il basso.
Ho bisogno sia di una UIView
che di una UIScrollView
? Uno va dentro l'altro?
Cosa deve essere implementato per scorrere automaticamente fino al campo di testo attivo?
Idealmente, gran parte della configurazione dei componenti sarà eseguita in Interface Builder. Vorrei solo scrivere il codice per ciò di cui ha bisogno.
Nota: il UIView
(o UIScrollView
) con cui sto lavorando è richiamato da una tabbar ( UITabBar
), che deve funzionare normalmente.
Modifica: sto aggiungendo la barra di scorrimento solo per quando viene visualizzata la tastiera. Anche se non è necessario, mi sembra che fornisca un'interfaccia migliore perché, ad esempio, l'utente può scorrere e modificare le caselle di testo.
Ho funzionato dove cambio la dimensione del frame UIScrollView
quando la tastiera va su e giù. Sto semplicemente 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
}
Tuttavia, ciò non "sposta in alto" automaticamente o centra i campi di testo inferiori nell'area visibile, che è quello che mi piacerebbe davvero.