Ottieni le coordinate UIExtfield y a livello di Uiview?
-
13-11-2019 - |
Domanda
Attualmente ho un UiTextfield in una cella personalizzata e voglio ottenere la coordinata Y di quell'Uitextfield a livello della vista del controller di visualizzazione (UIVIEW). Attualmente sto cercando di fare qualcosa del genere:
if (thetextField.superview.superview.superview.frame.origin.y >= keyboardY) {
}
Ma sembra che la coordinata Y sia sempre 0 quando in realtà non lo è. C'è un modo per raggiungere questo obiettivo?
Lo sto facendo perché voglio rilevare se l'Uikeyboard sta bloccando Uitextfield a livello di Uiview in modo da poter riorganizzare le mie celle di conseguenza.
Grazie!
Soluzione
Dai un'occhiata convertPoint:*
metodi in Documentazione Uiview. Questi metodi consentono di mappare il punto da o verso le coordinate di altre viste.
Purché self
è un controller di visualizzazione, questa riga restituisce le coordinate della vista del campo di testo in vista:
[thetextField convertPoint:thetextField.frame.origin toView:self.view];
Puoi anche convertire i retti in modo simile usando convertRect:*
metodi.
Altri suggerimenti
Swift 3 Versione:
thetextField.convert(thetextField.frame.origin, to:self.view)
Restituisce un cgpoint, quindi puoi accedere alle proprietà "x" o "y".