Per impostazione predefinita, se un campo di testo è figlio di una vista a scorrimento e viene toccato quando è parzialmente fuori dalla cornice della vista a scorrimento principale, la vista a scorrimento si sposta leggermente verso l'alto. Ad esempio, supponiamo di avere una vista di scorrimento con un'altezza di fotogramma di 200, ma un'altezza contentSize di 260 e mettiamo un campo di testo in posizione 220. Ora scorro verso l'alto e posiziono il campo di testo per metà all'interno della cornice dello scrollview e l'altra metà viene tagliata. Se tocco questo campo di testo, noto che la vista a scorrimento si sposta automaticamente di un paio di pixel prima che la tastiera si avvicini. Questo è problematico perché ho già il mio codice di scorrimento, quindi quando questo accade, finisce per scorrere due volte quanto voglio. C'è un modo per rimuovere questo comportamento predefinito?Come posso impedire a UIScrollView di scorrere automaticamente quando un UITextField viene toccato dal frame della scrollview?
5
A
risposta
1
Sembra che la scrollview venga spostata in risposta alla tastiera visualizzata invece del campo di testo che viene toccato. Dai uno sguardo a Apple's Managing the Keyboard documentation; ha una sezione utile su scrollviews.
0
Una domanda simile è già stato risposto qui: https://stackoverflow.com/a/5673026/550177
Si può anche provare a reimpostare contentOffset del ScrollView quando il campo di testo diventa il primo responder. Implemement il delegato campo di testo come questo:
-(void)textFieldDidBeginEditing:(UITextField *)textField
{
[self.scrollView setContentOffset:_scrollView.contentOffset animated:NO];
}
Questo codice rimuove che l'animazione automatica quando si seleziona il campo di testo. Ho provato con iOS 6.1 nel simulatore.