Attualmente cambio la dimensione della vista a scorrimento quando la tastiera è attiva. Uso anche le frecce per consentire all'utente di passare rapidamente al campo di testo successivo. Il mio scrollRectToVisible non funziona correttamente nella direzione verticale. Si muove orizzontalmente correttamente. Ho riscontrato un problema con la mia tavoletta decimaleLa visualizzazione della tastiera in iOS 8 si comporta in modo strano
2014-09-12 10:29:24.039 TS[1895:455658] Can't find keyplane that supports type 8 for keyboard iPhone-Portrait-DecimalPad; using 1425143906_Portrait_iPhone-Simple-Pad_Default
Ho anche analizzato il seguente codice.
- (void)keyboardDidShow:(NSNotification *)n {
// Find top of keyboard input view
CGRect keyboardRect = [[[n userInfo] objectForKey:UIKeyboardFrameEndUserInfoKey] CGRectValue];
keyboardRect = [self.view convertRect:keyboardRect fromView:nil];
CGFloat keyboardTop = keyboardRect.origin.y;
// Resize scroll view
CGRect newScrollViewFrame = CGRectMake(0, 0, self.view.bounds.size.width, keyboardTop);
newScrollViewFrame.size.height = keyboardTop - self.view.bounds.origin.y;
[self.scrollView setFrame:newScrollViewFrame];
}
ho notato che il keyboardRect è 244 per il mio pad decimale e 207 per la mia tastiera predefinita. Non sono sicuro di come sistemarlo. Anche questo problema è apparso solo in iOS 8. La mia app non ha avuto problemi con iOS 7. Grazie per l'aiuto.
AGGIORNAMENTO: Ho scoperto che quando un campo di testo viene inizialmente selezionato, la vista scorrevole si sposta in modo appropriato. Quando si seleziona un altro campo di testo mentre la tastiera è attiva, si verifica quando si verifica il problema. Sembra che la scrollview ripristini le sue dimensioni alle dimensioni originali. Perché dovrebbe succedere? C'è un modo per impedire che ciò accada?
Stavo affrontando lo stesso strano comportamento mentre lavoravo con scorllview e autorizzando in ios 8.4, Xcode 6.4. Una soluzione rapida per questo è regolare il frame del tuo ScrollView in textField delegate Method - (void) textFieldDidEndEditing: (UITextField *) textField. –