在tableview的最后一行,我有一个文本字段,它接受输入和完成,它在行中添加一个文本并更新tableview。当键盘出现时,我需要将tableview滚动到最后一行。
我已经做了两件事来管理它,但它没有用。
-(void) textFieldDidBeginEditing:(UITextField *)textField {
[archiveTabelView scrollToRowAtIndexPath:[NSIndexPath indexPathForRow:lastRow inSection:0] atScrollPosition:UITableViewScrollPositionNone animated:YES];
archiveTabelView.scrollEnabled = NO;
}
它不起作用,如果我们在延迟后调用scrollToRowAtIndexPath它甚至不能正常工作。
请建议。
答案 0 :(得分:1)
将动画设为NO以某种方式对我有效。不确定这背后的确切原因。
[archiveTabelView scrollToRowAtIndexPath:[NSIndexPath indexPathForRow:lastRow inSection:0] atScrollPosition:UITableViewScrollPositionNone animated:NO];
答案 1 :(得分:0)
尝试添加更多内容大小。并尝试查看tableview框架的内容大小。如果你想要,可以同时删除两个框架。
答案 2 :(得分:0)
在显示键盘时处理滚动的最佳方法是将您的班级作为观察者注册到UIKeyboardDidShowNotification
或UIKeyboardWillShowNotification
,具体取决于您何时要移动内容并{{1或UIKeyboardWillHideNotification
取决于您何时想要移动内容。
当在通知对象中发送其中一个通知时,您可以找到键盘大小,此大小将允许您向上/向下移动内容或正确地增加/减少UIKeyboardDidHideNotification
。
另外请注意,如果您在contentSize
上拨打resingFirstResponder
,则会发送隐藏通知。
现在,为了让您的桌面视图在键盘显示/隐藏时正确滚动,您必须增加/减少tableView UITextField
的{{1}}并可能使用contentSize
而不是UIScrollView
。