【问题标题】:keep keyboard from hiding UITextField at bottom of UITableView防止键盘隐藏 UITableView 底部的 UITextField
【发布时间】:2014-11-19 17:25:18
【问题描述】:

根据UITableView, make footer stay at bottom of screen? 的回答,我验证了:

为了让页脚保持在屏幕底部, 并且不随表格滚动,则不能使用表格视图 页脚。你甚至不能使用 UITableViewController,你需要 将您的视图控制器实现为 UIViewController。然后你添加 您自己的表视图作为子视图。您还需要添加页脚 作为视图控制器视图的子视图,而不是表视图。制作 确保您调整表格视图的大小,使其底部位于页脚的顶部 查看。

但问题是当用户尝试键入时,我的页脚内的 UITextField 被键盘隐藏了。那么如何让键盘不隐藏 UITextField 呢?在整个应用程序中,我一直在使用 TPKeyboardAvoiding。但是在这种情况下,如果 UIScrollView/TPKeyboardAvoidingScrollView 包含一个 UITableView 和一个垂直顺序的 UIView,它就不起作用。我通常喜欢 TPKeyboardAvoiding,因为它既快速又简单。有什么想法可以解决这个问题吗?

【问题讨论】:

  • 难道你不能用老式的方式来滑动 UIViewController 的 self.view 然后再向下滑动吗?
  • @Darren,我正在看那个。但到目前为止,我发现的最好的代码是将键盘数据硬编码为幻数。所以我正在寻找以某种方式将该代码与键盘通知结合起来的方法。代码是stackoverflow.com/questions/1247113/…
  • 不要将 UITextField 添加到 UITableView 的页脚中。如引用文本中所述,将其添加为 UIViewController 的子视图。
  • 感谢所有回复。但不幸的是,其中没有一个有太大帮助:) 你们只是在重复我所说的我已经做过的事情。我 am 使用 UIViewController 和 UITableView 以及 UITableView 下面的 UIView。我用作“页脚”的 UIView 包含一个 UITextField 和一个按钮。我是提供报价的人。所以不。我没有使用 UITableView 页脚。反正。我发现的新代码存在一些问题,即在键盘消失后它会暂时显示黑屏。此外,这些数字是硬编码的幻数。任何想法如何解决这些问题?

标签: ios uitableview uiscrollview keyboard uitextfield


【解决方案1】:

您引用的指令是告诉您使用 UIViewController,将 UITableView 添加为子视图,然后将 UITextField 添加为 UIViewController 的子视图而不是 UITableView 的子视图。

让我给你画出来:

第 1 步:

将 UITableView 添加到您的视图控制器

第 2 步:

添加您的 UITextField 子视图(如果您愿意,可以将 UITextField 嵌入到 UIView 容器中)作为 UIViewController 视图的子视图,而不是您的 UITableView 页脚。

第三步:

如果取决于您使用的是框架还是自动布局,您可以在用户点击文本字段时调整 UITextField 子视图的框架或自动布局约束常量值。

第四步:

最后,键盘出现了,UITextField 没有被键盘遮挡。

【讨论】:

    【解决方案2】:

    只要确保你的 UITableView 没有初始化它自己的键盘出现的自动滚动。如果您使用 UITableViewController,那么只需将其子类化并确保您不将其称为 viewWillAppear:。我没有调查在不使用 UITableViewController 的情况下应该阻止哪种方法,所以,你应该自己找出来,否则其他人会提供帮助。

    我在自己的项目中做过类似的事情,我希望自己滚动表格视图以显示键盘。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-26
      • 1970-01-01
      • 2015-01-17
      • 2011-03-29
      • 2022-01-23
      • 1970-01-01
      相关资源
      最近更新 更多