Получить UITextField Y координату на уровне UIView? - PullRequest
5 голосов
/ 28 февраля 2012

В настоящее время у меня есть UITextField в пользовательской ячейке, и я хочу получить координату Y этого UITextField на уровне представления View Controller (UIView).В настоящее время я пытаюсь сделать что-то вроде этого:

if (thetextField.superview.superview.superview.frame.origin.y >= keyboardY) {

}

Но кажется, что координата Y всегда равна 0, когда на самом деле это не так.Есть ли способ достичь этого?

Я делаю это, потому что я хочу определить, блокирует ли UIKeyboard UITextField на уровне UIView, чтобы я мог соответствующим образом перестроить свои ячейки.

Спасибо!

Ответы [ 2 ]

13 голосов
/ 28 февраля 2012

Проверка convertPoint:* методы в Документация UIView . Эти методы позволяют отображать точки в координаты других видов или из них.

При условии, что self является контроллером представления, эта строка возвращает происхождение текстового поля в координатах представления контроллера представления:

[thetextField convertPoint:thetextField.frame.origin toView:self.view];

Вы также можете конвертировать ректы аналогичным образом, используя convertRect:* методы.

0 голосов
/ 05 июля 2017

Swift 3 версия:

thetextField.convert(thetextField.frame.origin, to:self.view)

Возвращает CGPoint, поэтому вы можете получить доступ к свойствам "x" или "y".

...