根据UITableView, make footer stay at bottom of screen?的回答,我确认了这一点:
为了让页脚保持在屏幕的底部, 并且不会随表滚动,则您无法使用表格视图 页脚。你甚至不需要使用UITableViewController 将视图控制器实现为UIViewController。然后你添加 您自己的表视图作为子视图。您还需要添加页脚 作为视图控制器视图的子视图,而不是表视图。使 确保您调整表格视图的大小,使其底部位于页脚的顶部 图。
但问题是我的页脚中的UITextField在用户尝试键入时被键盘隐藏。那么如何防止键盘隐藏UITextField呢?在整个应用程序中,我一直在使用TPKeyboardAvoiding。但在这种情况下,UIScrollView / TPKeyboardAvoidingScrollView以垂直顺序包含UITableView和UIView,它不起作用。我一般都喜欢TPKeyboardAvoiding,因为它非常快速和简单。我有什么想法可以解决这个问题吗?
答案 0 :(得分:1)
您引用的指令告诉您使用UIViewController,添加UITableView作为子视图,然后添加UITextField作为UIViewController的子视图,而不是UITableView的子视图。
让我为你画出来:
将UITableView添加到视图控制器
添加您的UITextField子视图(您可以将UITextField嵌入UIView容器中,如果您愿意)作为UIViewController视图的子视图而不是您的UITableView页脚。
如果您使用的是帧或自动布局,则可以在用户点击文本字段时调整UITextField子视图的帧或自动布局约束常量值。
最后,键盘出现,UITextField不会被键盘遮挡。
答案 1 :(得分:0)
请确保您的UITableView没有初始化它自己的键盘显示自动滚动。如果您使用UITableViewController,那么只需将其子类化,并确保您不要将其称为viewWillAppear:。我没有使用UITableViewController来调查你应该阻止哪种方法,所以,你应该自己找出它或者别人会帮忙。
我在我自己的项目中做了类似的事情,我希望自己滚动表格视图以显示键盘。