键盘与UITableView中的UITextView重叠。为什么不工作scrollToRowAtIndexPath:atScrollPosition:animated:?

时间:2017-05-05 15:51:44

标签: ios objective-c uitableview

我在同一个问题上阅读了很多主题,但没有一个解决方案能够正常运作。

问题很常见:​​在我的UITableView中,我有很多行,它们只包含两个UITextView。当我开始在最后几行中编辑文本时,键盘与我的行重叠。

我找到了完美的方法scrollToRowAtIndexPath:atScrollPosition:animated: 我认为应该滚动我的tableView,但什么也没发生。为什么?如何解决这个问题?

我有这个代码:

-(void)textViewDidBeginEditing:(UITextView *)textView {
    NSIndexPath *indexPath = [self.tableView indexPathForSubview:textView];
    [self.tableView scrollToRowAtIndexPath:indexPath atScrollPosition:UITableViewScrollPositionTop animated:true];
}

其中indexPathForSubview是我自己的UITableView类别中的方法 - 它正常工作并获得正确的IndexPath。

一些信息:在viewDidLoad中我设置了这些首选项

self.tableView.estimatedRowHeight = 100;
self.tableView.rowHeight = UITableViewAutomaticDimension;

我的应用程序如下:

ViewController

overlapping

1 个答案:

答案 0 :(得分:0)

你可以调整你的UITableView(UIScrollVIew的子类)' s contentInset

当然,您可以通过修改UITableViewWrapperView的大小来解决此问题,这是UITableView的解决方案。 enter image description here