【问题标题】:Get UITextField Y coordinate on UIView level?在 UIView 级别上获取 UITextField Y 坐标?
【发布时间】:2012-03-17 11:10:24
【问题描述】:

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

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

}

但 Y 坐标似乎始终为 0,而实际上并非如此。有什么方法可以实现吗?

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

谢谢!

【问题讨论】:

    标签: ios uitextfield cell coordinate


    【解决方案1】:

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

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

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

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

    【讨论】:

    • 太棒了!顺便说一句它的 frame.origin :)
    • 对我来说这是可行的.. let originInSuperview:CGPoint = textField .convertPoint(CGPointZero, toView: self.view) print(originInSuperview) 这是为了 swift ..
    • narasimha 给出的那个使用 xcode 9.3 为我工作
    【解决方案2】:

    Swift 3 版本:

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

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

    【讨论】:

      猜你喜欢
      • 2016-03-15
      • 1970-01-01
      • 2014-05-03
      • 1970-01-01
      • 2015-05-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多