让键盘隐藏在UITableView底部的UITextField

时间:2014-09-25 03:41:31

标签: ios uitableview uiscrollview keyboard uitextfield

根据UITableView, make footer stay at bottom of screen?的回答,我确认了这一点:

  

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

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

2 个答案:

答案 0 :(得分:1)

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

让我为你画出来:

第1步:

将UITableView添加到视图控制器

enter image description here

第2步:

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

enter image description here

第3步:

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

enter image description here

第4步:

最后,键盘出现,UITextField不会被键盘遮挡。

enter image description here

答案 1 :(得分:0)

请确保您的UITableView没有初始化它自己的键盘显示自动滚动。如果您使用UITableViewController,那么只需将其子类化,并确保您不要将其称为viewWillAppear:。我没有使用UITableViewController来调查你应该阻止哪种方法,所以,你应该自己找出它或者别人会帮忙。

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