Obtenez une coordonnée uitextfield y au niveau uiView?
-
13-11-2019 - |
Question
Actuellement, j'ai un uitextfield dans une cellule personnalisée et je veux obtenir la coordonnée y de cet UITEXTField au niveau de la vue du contrôleur de vue (UIView). Actuellement, j'essaie de faire quelque chose comme ceci:
if (thetextField.superview.superview.superview.frame.origin.y >= keyboardY) {
}
Mais il semble que la coordonnée y soit toujours 0 alors qu'elle ne l'est pas. Y'a-t-il une quelconque façon de réussir cela?
Je fais cela parce que je tiens à détecter si l'Uikeyboard bloque le champ Uitext au niveau UIView afin que je puisse réorganiser mes cellules en conséquence.
Merci!
La solution
Vérifier convertPoint:*
méthodes Documentation UIView. Ces méthodes vous permettent de mapper le point vers ou depuis d'autres coordonnées de vues.
À condition que self
est un contrôleur de vue, cette ligne renvoie les coordonnées de vue du champ de texte du champ de texte: cette ligne:
[thetextField convertPoint:thetextField.frame.origin toView:self.view];
Vous pouvez également convertir des reculs de la même manière convertRect:*
Méthodes.
Autres conseils
Version Swift 3:
thetextField.convert(thetextField.frame.origin, to:self.view)
Il renvoie un CGPoint, vous pouvez donc accéder aux propriétés "x" ou "y".