【问题标题】:iOS: Disable UITableView animation when keyboard shows upiOS:当键盘出现时禁用 UITableView 动画
【发布时间】:2012-04-19 21:29:59
【问题描述】:

每个人都想在键盘弹出时移动 UITableView,但我正在寻找一种方法来禁用键盘弹出时对光标的自动动画。当键盘弹出并导致 UITableView 滚动到光标(以避免阻塞它)时,我遇到了奇怪的抽搐/摇晃/不稳定的滚动行为。

我的每个 UITableView 单元格中都有一个 UITextView。键盘弹出时我没有提交任何其他动画。

此时,我想完全禁用动画并手动滚动到所需的 CGPoint。

谢谢!

【问题讨论】:

  • 我在一个单元格中有一个 3 行文本字段。我希望能够在表格中添加一个单元格,将表格缩小到出现键盘时应该达到的高度,然后让表格视图一直滚动到底部。我目前有一个间歇性的解决方案,我收到一个关于 keyboardWillShow 的通知并执行一个 0.2 秒的动画来缩小 tableview 的高度,并在完成时执行一个 0.05 秒的延迟请求,让 tableview 一直滚动到底部。在某些情况下工作取决于细胞计数。只需要第一响应者不要滚动表格。帮助!
  • 你有没有找到解决这个问题的方法?我正在经历完全相同的事情,我的表格视图正确调整大小,但最后执行了这种奇怪的跳跃。

标签: ios uitableview keyboard uitextview becomefirstresponder


【解决方案1】:

自动滚动代码驻留在 tableViewController 中,因此无法禁用自动滚动。您可以从 UIViewController 子类化并在其中使用 tableView,而不是从 UITableViewController 子类化。 如果你愿意使用 UITableViewController 本身,你可以重写 viewWillAppear 并且不要调用 [super viewWillAppear]。

【讨论】:

  • 对于其他搜索此问题并遇到此答案的人,请谨慎执行此操作。这可能是唯一看起来可以实现且容易的事情,但在诸如viewWillAppear 之类的视图生命周期方法中不调用 super 绝不是一个好主意
猜你喜欢
  • 2013-02-25
  • 1970-01-01
  • 2017-08-22
  • 1970-01-01
  • 1970-01-01
  • 2016-03-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多