在UIView级别获取UITextField Y坐标?

时间:2012-02-27 23:40:13

标签: ios uitextfield cell coordinate

目前我在自定义单元格中有一个UITextField,我希望在View Controller的视图(UIView)级别获取该UITextField的Y坐标。目前我正在尝试做这样的事情:

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

}

但实际上不是Y坐标似乎总是0。有没有办法实现这个目标?

我这样做是因为我想检测UIKeyboard是否在UIView级别阻止UITextField,以便我可以相应地重新排列我的单元格。

谢谢!

2 个答案:

答案 0 :(得分:13)

检查UIView documentation中的convertPoint:*种方法。这些方法允许您将点映射到其他视图坐标或从其他视图映射。

如果self是视图控制器,则此行将在视图控制器的视图坐标中返回文本字段的原点:

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

您还可以使用convertRect:*方法以类似方式转换rects。

答案 1 :(得分:0)

Swift 3版本:

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

它返回一个CGPoint,因此您可以访问“x”或“y”属性。