当有文本字段的内嵌编辑时,UITableViewController不会自动调整其表格视图的大小和重新定位

时间:2013-10-06 12:56:39

标签: ios xcode uitextfield ios7 uitableview

更新(已解决):) 我试图从头开始重新创建我的场景。我发现如果表视图控制器的类是“UITableViewController”,键盘出现时视图的重新定位恰好发生。但是当我将表视图控制器的Class设置为我的自定义类时,重新定位不会发生。为什么会这样?鉴于我的自定义类是UITableViewController的子类,在我的实现中没有任何地方实现任何数据源和数据委托,因为我使用静态单元格?

我忘了在我的界面声明中添加委托。现在它已经开始工作了。

@interface CustomClass : UITableViewController <UITableViewDelegate>

我有一个UITableViewController,其中tableview内容是静态单元格,样式很简单。我添加了7个表视图单元格。在每个单元格中,我添加了一个文本字段。

当我点击表格视图单元格时,键盘显示但表格视图没有重新定位;从而隐藏了我选择的表格视图单元格。

之前我已经解决了这个问题,但是我使用了一个视图控制器,然后将其嵌入到scrollview中。但是从文档中可以看出,默认情况下具有scrollview的UITableViewController应该自动调整大小并重新定位它的表视图。

我正在使用XCode 5并使用iOS 7最新版本。

4 个答案:

答案 0 :(得分:0)

只要textField的操作是didBeginEditing,您就可以更改tableView的偏移量(y)。

如果您需要更多帮助,请告诉我; D

答案 1 :(得分:0)

它应该自动改变其大小,但不一定要调整其位置/偏移量。

您确定表格视图仍然覆盖整个屏幕,即使位于键盘下面吗? 您可以通过滚动并查看滚动条来检查这一点。

如果要调整内容偏移量,请在用户开始编辑文本字段时在回调中执行此操作。

答案 2 :(得分:0)

消除设置表视图的内容偏移量的代码。

具有第一响应者状态的文本字段的表格单元格应自动在键盘上方滚动。你不应该为此编写一些代码。

如果使用静态单元格,请确保表视图控制器未实现表视图数据源方法。此外,您拖动到IB画布上的视图控制器必须是UITableViewController;它不能是包含从对象库中拖出的UITableView的UIViewController。

答案 3 :(得分:0)

经过彻底检查后,我意识到,我的自定义类只是子类UITableViewController而没有添加委托:(

下面解决问题......最后! :)

@interface CustomClass : UITableViewController <UITableViewDelegate>