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!

È stato utile?

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".

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top