当弹出窗口内的文本字段触发键盘时,将表格视图滚动到弹出过度呈现文本字段

JAH*_*lia 8 iphone objective-c uitableview ios

我有一个UITableViewController有很多单元格,每个单元格包含四个相互垂直的文本字段,通过点击任何文本字段显示一个弹出窗口,但是,这个弹出窗口包含一个文本字段,当点击键盘被触发时,很可能是pop over将向上移动以防止键盘隐藏其文本字段(这是弹出窗口的默认行为),但在后台(灰色视图)中,tableViewController丢失其正确的滚动行为以保持弹出文件呈现 - textField键盘可见时在轨道上..

一个示例项目可以在这里下载.

在这种情况下,如何在键盘可见的情况下,如何偏移表视图以保持pop-presentFieldField在屏幕上显示?

我尝试了着名的TPKeyboardAvoiding图书馆,但没有解决问题.

ps tableViewController适用于前3或4个键盘发射,但在以后的尝试中会丢失精确的滚动.

屏幕截图(绿色文本字段是显示弹出窗口的文本字段,但tableViewController滚动到以红色显示的错误文本字段): 在此输入图像描述

任何帮助将受到高度赞赏.

编辑: 这个问题不重复:选择文本字段时创建一个UITableView滚动, 因为我需要滚动到表视图的文本字段是一个不是键盘而scrollToRowAtIndexPath不是键盘弹出的文本字段这种情况因为每个单元格包含4个文本字段.

Mru*_*nal 0

更改整个视图框架的大小。

比如说,keyboard height is 100那么,

CGRect frame = self.view.frame;
self.view.frame = CGRectMake(frame.origin.x, frame.origin.y, frame.size.width, frame.size.height - keyboardHeight);
Run Code Online (Sandbox Code Playgroud)

然后再次调用didSelectRowAtIndexPath相同的方法indexPath,因此它将重新加载弹出窗口。

这只是一个基本想法,可能需要进行一些修改才能实现确切的行为。

希望对你有帮助。