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!

Était-ce utile?

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

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top