0

在 tableview 的最后一行,我有一个文本字段,它接受输入,完成后,它在行中添加一个文本并更新 tableview。当键盘出现时,我需要将 tableview 滚动到最后一行。

我已经做了两件事来解决这个问题,但没有奏效。

-(void) textFieldDidBeginEditing:(UITextField *)textField {
    [archiveTabelView scrollToRowAtIndexPath:[NSIndexPath indexPathForRow:lastRow  inSection:0] atScrollPosition:UITableViewScrollPositionNone animated:YES];
    archiveTabelView.scrollEnabled = NO;
}

它不起作用,如果我们在延迟后调用 scrollToRowAtIndexPath 它甚至不起作用。

请建议。

4

3 回答 3

2

以某种方式将动画设置为 NO 对我有用。虽然不确定这背后的确切原因。

[archiveTabelView scrollToRowAtIndexPath:[NSIndexPath indexPathForRow:lastRow  inSection:0] atScrollPosition:UITableViewScrollPositionNone animated:NO];
于 2014-07-03T11:28:43.827 回答
0

尝试添加更多内容大小。并尝试查看 tableview 框架的内容大小。如果你愿意,你可以增加两个框架。

于 2013-08-13T09:41:57.540 回答
0

显示键盘时处理滚动的最佳方法是将您的班级注册为观察者,UIKeyboardDidShowNotification或者UIKeyboardWillShowNotification取决于您何时要向上移动内容,UIKeyboardWillHideNotification或者UIKeyboardDidHideNotification取决于何时要向下移动内容。

当在通知对象中发送这些通知之一时,您可以找到键盘大小,此大小将允许您向上/向下移动内容或contentSize适当地增加/减少。

还要小心,如果您调用resingFirstResponder隐藏UITextField通知,则会发送。

现在,为了使您的表格视图在显示/隐藏键盘时正确滚动,您必须增加/减少contentSizetableView 的UIScrollView,并可能使用setContentOffset:animated:而不是scrollToRow.

于 2013-08-13T10:04:21.340 回答