UITableView滚动到单元格的顶部

时间:2016-02-02 13:27:21

标签: ios swift uitableview uitextview

我有一个带有3个静态单元格的UITableViewController。一个在顶部高度为60.0,在底部具有相同尺寸。中间单元的高度是动态的,并且很大,所有3个单元一起填满整个屏幕 中间单元格包含一个填充整个单元格的UITextView 我的问题是,当我想在TextView中键入内容时,tableview会在键盘上升时自动滚动,我不会再看到单元格的顶部,包括光标,直到我手动向后滚动。
有什么办法可以阻止表格视图自动滚动吗?或者告诉它它应该滚动到单元格的顶部,所以我看到光标?

我已经尝试覆盖viewWillAppear(_:)方法而不调用它的超级方法但是我无法手动滚动桌面视图以便我无法到达最后键盘可见时的单元格 我还尝试手动滚动到textViewDidBeginEditing(_:)内的单元格,但它没有改变任何内容。我的方法看起来像这样。

func textViewDidBeginEditing(textView: UITextView) {
    let indexPath = NSIndexPath(forRow: 1, inSection: 0)
    self.tableView.scrollToRowAtIndexPath(indexPath, atScrollPosition: .Top, animated: true)
}

我不知道我还能尝试什么,所以我感谢你的帮助。

2 个答案:

答案 0 :(得分:0)

好吧,您可以像这样设置tableView的contentInset:

{{1}}

因此,您可以使用底部补偿所需的偏移量。

答案 1 :(得分:0)

mainTableView.scrollsToTop = true

OR

mainTableView.setContentOffset(CGPointZero, animated:true)