iOS: 当键盘弹出时禁用UITableView动画

7
每个人都希望在键盘弹出时移动UITableView,但我正在寻找一种禁用键盘弹出时自动动画到光标的方法。当键盘弹出并导致UITableView滚动到光标(以避免阻塞它)时,我会遇到奇怪的抖动/颠簸/不稳定的滚动行为。
我的每个UITableView单元格中都有一个UITextView。当键盘弹出时,我不会执行任何其他动画。
此时,我想完全禁用动画并手动滚动到所需的CGPoint。
谢谢!

我在一个单元格中有一个3行的文本字段。我想能够向表格添加一个单元格,当键盘弹出时将表格缩小到应该的高度,然后让表视图滚动到底部。我目前有一个间歇性的解决方案,当收到keyboardWillShow通知时,执行一个0.2秒的动画来缩小表视图的高度,在完成后延迟0.05秒请求表视图滚动到底部。根据单元格数量在某些情况下有效。只需要第一响应者不要滚动表格。救命啊! - cruffenach
你解决这个问题了吗?我也遇到了完全相同的情况,我的表格视图可以正确调整大小,但在最后会出现奇怪的跳跃。 - Kasper Munck
1个回答

9
自动滚动代码存储在tableViewController中,因此不能禁用自动滚动。您可以从UIViewController进行子类化,并在其中使用tableView来代替从UITableViewController进行子类化。 如果您愿意使用UITableViewController本身,则可以覆盖viewWillAppear并且不调用[super viewWillAppear]。

对于其他遇到这个问题并看到这篇答案的人,请谨慎操作。虽然这似乎是唯一可行且容易的方法,但在viewWillAppear等视图生命周期方法中不调用super绝不是一个好主意。 - simonthumper

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接