5

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

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

}

但似乎 Y 坐标始终为 0,而实际上并非如此。有什么办法可以做到这一点?

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

谢谢!

4

2 回答 2

15

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

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

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

您还可以使用方法以类似的方式转换矩形convertRect:*

于 2012-02-27T23:47:40.007 回答
1

斯威夫特 3 版本:

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

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

于 2017-07-05T08:48:07.890 回答