2010-07-26 4 views
38

Nella Gestione della tastiera documentation:UIKeyboardFrameBeginUserInfoKey & UIKeyboardFrameEndUserInfoKey

UIKeyboardFrameBeginUserInfoKey La chiave per un oggetto NSValue contenente un CGRect che identifica il telaio inizio della tastiera in coordinate dello schermo. Queste coordinate non prendono in conto fattori di rotazione applicati ai contenuti della finestra come risultato di modifiche di orientamento dell'interfaccia. Così, potrebbe essere necessario convertire il rettangolo per le coordinate della finestra (utilizzando il convertRect: Fromwindow: metodo) o per visualizzare le coordinate (utilizzando il convertRect: fromView: Metodo) prima di utilizzarlo.

UIKeyboardFrameEndUserInfoKey La chiave per un oggetto NSValue contenente un CGRect che identifica il telaio fine della tastiera in coordinate dello schermo. Queste coordinate non prendono in conto fattori di rotazione applicati ai contenuti della finestra come risultato di modifiche di orientamento dell'interfaccia. Così, potrebbe essere necessario convertire il rettangolo per le coordinate della finestra (utilizzando il convertRect: Fromwindow: metodo) o per visualizzare le coordinate (utilizzando il convertRect: fromView: Metodo) prima di utilizzarlo.

Qual è il significato di start frame e end frame? Qual'è la differenza tra loro?

+0

LOL che anche con iOS7, Apple è riuscita a documentare questo - nei documenti online di Apple in questo momento, i due tasti hanno lo stesso commento di documentazione, con solo l'inizio di parola/fine diverso, Doh! – Adam

risposta

47

Il frame iniziale è dove si trova la tastiera all'inizio dell'animazione: fuori schermo se viene visualizzata la tastiera o sullo schermo se la tastiera è nascosta. Il fotogramma finale è dove la tastiera sarà alla fine dell'animazione: viceversa. È possibile utilizzare la differenza tra di loro per scrivere un singolo metodo che risponde sia a nascondere che a mostrare la tastiera.

Assicurarsi di utilizzare anche UIKeyboardAnimationCurveUserInfoKey e UIKeyboardAnimationDurationUserInfoKey durante l'animazione delle modifiche della vista: in questo modo, le animazioni e le animazioni del sistema operativo saranno sincronizzate.

Un altro suggerimento: La documentazione si è collegato a stati, "il rettangolo compreso nelle proprietà UIKeyboardFrameBeginUserInfoKey e UIKeyboardFrameEndUserInfoKey del dizionario userInfo deve essere utilizzato per le informazioni sulle dimensioni che contiene Non utilizzare l'origine del rettangolo (che è. sempre {0.0, 0.0}) nelle operazioni di intersezione di rettangoli ". Almeno sull'iPad su OS 3.2, questo non è vero. Entrambi i rects hanno le stesse dimensioni, mentre l'origine, che è nelle coordinate dello schermo, differisce tra i due.

È possibile trovare questa domanda utile: UIKeyboardBoundsUserInfoKey is deprecated, what to use instead?

+5

Grazie per l'ottimo suggerimento su UIKeyboardAnimationCurveUserInfoKey e UIKeyboardAnimationDurationUserInfoKey! – ohho

+0

Prego.Se ti capita di lavorare su visualizzazioni testuali all'interno di una tabella, fammi sapere cosa ti viene in mente. –