Ho problemi a ottenere in modo affidabile l'altezza effettiva della tastiera. Sto aggiungendo una barra degli strumenti personalizzata che deve essere posizionata direttamente sopra la tastiera. Per fare ciò con i vincoli di layout, ho aggiunto un vincolo di spazio statico tra la parte inferiore dello schermo e la parte inferiore della barra degli strumenti. Quando viene visualizzata la tastiera, a modificare questo vincolo di essere all'altezza della tastiera, che varia di parecchio in IOS 8.iOS 8 ottiene l'altezza della tastiera
Per ridimensionare il distanziatore, attualmente utilizzo il seguente metodo che viene generato sulla UIKeyboardDidShowNotification
-(void)keyboardDidShow:(NSNotification*)notification
{
CGFloat height = [[notification.userInfo objectForKey:UIKeyboardFrameBeginUserInfoKey] CGRectValue].height;
self.shimConstraint.constant = height;
[self.view layoutIfNeeded];
}
Questo ridimensiona il vincolo correttamente a volte, ma spesso l'altezza della tastiera restituita è completamente errata. Qual è il modo migliore per ottenere in modo affidabile l'altezza della tastiera una volta visualizzata?
MODIFICA: L'applicazione consente all'utente di passare da un numero di campi di input diversi. Alcuni di essi hanno la correzione automatica disabilitata, quindi la barra di correzione automatica può o non può essere nascosta e all'altezza dei campi si restituiscono altezze errate.
Non utilizzare keyboardDidShow ... Date un'occhiata a mia soluzione nel link: http : //stackoverflow.com/questions/26213681/ios-8-keyboard-hides-my-textview/26226732#26226732 –