Ios UITableView没有滚动到最后一行,而是在上面滚动5-6行。(使用自动布局)

Ios UITableView没有滚动到最后一行,而是在上面滚动5-6行。(使用自动布局),ios,objective-c,uitableview,swift,autolayout,Ios,Objective C,Uitableview,Swift,Autolayout,我与下面的问题相同。 聊天应用程序需要UITableView才能滚动到底部。 但表格不会滚动到最后一行,而是滚动到上面的5-6行。 我已经尝试使用contentOffset和ScrollToRowatineXpath,但两者都无法解决此问题 我想应该在viewDidLayoutSubviews()中添加一些代码,因为我使用的是自动布局,但我不知道。 你知道如何纠正这个问题吗 滚动路径 内容偏移 您需要设置contentInset和ScrollIndicationSet属性: // adjus

我与下面的问题相同。

聊天应用程序需要UITableView才能滚动到底部。
但表格不会滚动到最后一行,而是滚动到上面的5-6行。

我已经尝试使用contentOffset和ScrollToRowatineXpath,但两者都无法解决此问题

我想应该在viewDidLayoutSubviews()中添加一些代码,因为我使用的是自动布局,但我不知道。
你知道如何纠正这个问题吗

滚动路径

内容偏移


您需要设置contentInset和ScrollIndicationSet属性:

// adjust t, l, b and r
self.tableView.contentInset = UIEdgeInsets( top: t, left: l, bottom: b, right: r)
self.tableView.scrollIndicatorInsets = UIEdgeInsets( top: t, left: l, bottom: b, right: r)

请注意,当键盘显示/隐藏时,您还需要调整这些属性。

这不值得一个“答案”,因此我将把它放在这里;我经常遇到这个问题,在最后一节中,我总是用heightForFooter来克服它。(tableView委托方法之一)我不返回页脚的视图或标题,只使用它设置一些空像素。我知道这感觉很不舒服。是的,我也想到了克服它的方法。当我没有办法修复它时,我会试试。@jeff,你在ScrollToRowatinexPath函数中的heightOfFooter在哪里使用?它不起作用。我不认为这会影响这个问题。你能解释一下吗?我猜你在屏幕底部有一个文本字段,这个文本字段不会滚动。如果不是这样,那么我的答案就不适用了。您需要通过将contentInset的底部值设置为文本字段的高度来通知表视图它无法使用文本字段使用的空间。您可能还需要将视图控制器的
automaticallyAdjustsScrollViewInsets
属性设置为
false
。我认为这不是问题所在。我发现了一个有趣的链接。它说这是由于苹果的缺陷。。
let offset = CGPoint(x: 0, y: self.tableView.contentSize.height
                              - self.tableView.frame.size.height
                              + self.tableView.contentInset.bottom)
self.tableView.contentOffset = offset
// adjust t, l, b and r
self.tableView.contentInset = UIEdgeInsets( top: t, left: l, bottom: b, right: r)
self.tableView.scrollIndicatorInsets = UIEdgeInsets( top: t, left: l, bottom: b, right: r)