iphone - 对 "keyboard obscures UITextField"问题的另一种看法

标签 iphone scroll uitextfield uitableview

我知道这是一个常见问题,UITableViewController 修复了这个问题,这是 iPhone SDK 3.0,但 UITableViewController 没有按我的预期工作,可能是由于我使用它的方式。这是我的问题:

我正在处理一个表单,该表单位于分组表中,其中包含一些文本字段。 表单下部的内容会被键盘遮挡。我知道这是一个古老的问题,并且有一些自动滚动的代码示例,但我还有一些要添加的内容,并且想知道是否有人找到了这个问题并修复了它。

首先:从 3.0 开始,如果您的表格由 UITableViewController 控制,您会自动滚动。我已经尝试过了,确实有效。 但是,我想使用自定义背景图像,而 UITableViewController 无法使用该背景图像。这是我所做的:

  1. 使用普通 View 创建 XIB,其上有图像。
  2. 还在 XIB 中,我有一个 UIViewController(实际上是我自己的子类,因为我编写数据源方法等),其中包含表格。
  3. 在我的主视图 viewDidLoadMethod 中,我尝试过以下操作: tableViewController.view.backgroundColor = [UIColorclearColor]; [self.view addSubview:tableViewController.view];

事实上,表格的显示正如我所期望的那样。 但是,当我点击表格中的文本字段时,我没有获得 tableViewController 应该免费提供给我的“神奇”滚动功能。

就目前情况而言,这与我根本没有使用 TableViewController 并将表格直接拖放到 imageView 上的行为完全相同。 (坦率地说,这减少了 1 个类,并且更易于阅读代码)。

我引入 TableViewController 的唯一原因是为了实现自动滚动。

我有什么遗漏吗?

最佳答案

调整大小;如果你想让它平滑,那么使用动画 block 。

[UIView beginAnimations:@"tableAnim" context:nil];
// 214 = keyboard size, adjust it if you have navigation bar or status bar
tableView.frame = CGRectMake(0, 0, 320, 480 - 214);
[UIView commitAnimations];

关于iphone - 对 "keyboard obscures UITextField"问题的另一种看法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2034367/

相关文章:

objective-c - 如何从文本字段获取数值?

iOS 9 不显示 UIPageViewController 全屏

iphone - 如何让 MGSplitViewController 在 Monotouch 中工作?

iPhone - 导入/导出应用程序数据?

iphone - 将数组发送到下一个 viewcontroller iOs xcode

javascript - 如何在滚动时显示 div/class/id

asp.net - 在回发页面中维护 div 的滚动位置

javascript - 如何从父框架滚动 iFrame 中的水平滚动条?

ios - iPhone 6中的iPhone字符串比较奇怪问题

c# - Xamarin:设置 UITextField 高度