2012-02-27 4 views
5

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

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

} 

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

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

Спасибо!

ответ

9

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

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

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

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

+1

Awesome! btw его frame.origin :) –

+0

Для меня это сработало .. let originInSuperview: CGPoint = textField .convertPoint (CGPointZero, toView: self.view) print (originInSuperview) Это для быстрого .. –

0

Swift 3:

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

Это возвращает CGPoint, так что вы можете получить доступ к "х" или "Y" свойства.

 Смежные вопросы

  • Нет связанных вопросов^_^