【问题标题】:Scrolling a UIScrollView to accommodate the keyboard in iOS滚动 UIScrollView 以适应 iOS 中的键盘
【发布时间】:2014-02-19 05:43:46
【问题描述】:

我有一个滚动视图,其中包含 1500 pt 高的内容视图。它滚动的屏幕是标准 iPad 纵向屏幕 (1024)。

我有一些分散在滚动视图的内容视图中的文本字段。当我打开键盘(通过点击文本字段)时,我已经将滚动视图的底部约束提高了 216 个点,以便为键盘腾出空间。但是,如果我的文本视图位于屏幕底部,它仍然会被键盘隐藏。

我想以编程方式滚动滚动视图(我知道如何使用[self.scrollview setContentOffset:CGMake...),但我不知道滚动它的距离。我尝试使用 textField 框架的 y 坐标来计算它,但我认为我只能检索相对于内容视图高度的值……而不是它在屏幕上的实际位置(就好像我在 iPad 外部测量它一样使用以点为单位的卷尺)。

为了计算视图滚动的距离,我现在需要知道文本框在屏幕上的位置——这样我就可以确定它是否会被键盘覆盖并移动滚动足以看到它。

有什么方法可以找出文本字段在屏幕上的位置吗?

谢谢!

【问题讨论】:

标签: ios uiscrollview uitextfield


【解决方案1】:

我使用此代码 sn-p 在我的 iPhone 应用程序中获得相同的结果。为 heightDiff

找到合适的值
float heightDiff = 150;

CGPoint yScrollPoint = [self.scrollView convertPoint:CGPointZero fromView:self.textfield];
CGPoint scrollPoint = CGPointMake(0.0, yScrollPoint.y - heightDiff);
[self.scrollView setContentOffset:scrollPoint animated:YES];

将此添加到您的 textFieldDidBeginEditing:textField

希望这会有所帮助。

【讨论】:

    【解决方案2】:

    Matt 在上面的评论中发布了一个链接,其中详细说明了如何执行此操作以及更多内容:http://www.apeth.com/iOSBook/ch23.html#_keyboard_covers_text_field

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-04-10
      • 2016-05-31
      • 2017-08-11
      • 2012-10-21
      • 1970-01-01
      • 1970-01-01
      • 2018-06-11
      • 1970-01-01
      相关资源
      最近更新 更多