目前我在自定义单元格中有一个UITextField,我希望在View Controller的视图(UIView)级别获取该UITextField的Y坐标。目前我正在尝试做这样的事情:
if (thetextField.superview.superview.superview.frame.origin.y >= keyboardY) {
}
但实际上不是Y坐标似乎总是0。有没有办法实现这个目标?
我这样做是因为我想检测UIKeyboard是否在UIView级别阻止UITextField,以便我可以相应地重新排列我的单元格。
谢谢!
答案 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”属性。