滚动条没有到达表格视图的末尾

Posted

技术标签:

【中文标题】滚动条没有到达表格视图的末尾【英文标题】:Scroll bar doesn't reach the end of the tableview 【发布时间】:2014-07-30 20:47:04 【问题描述】:

我不知道为什么,但是我的 tableview 的滚动条永远不会到达终点。

这是tableview的中间,一切看起来都很好

但是当我到达终点时

滚动条没有到达终点...

我猜我的约束没问题(我正在使用自动布局),因为除了滚动条之外,tableview 也显示得很好。

我的视图控制器是一个UIViewController,并且只包含一个UITableView。这是一个总结的截图:

代码没有添加约束。你知道我该如何调试吗?

提前致谢

编辑:我尝试删除并重新创建视图控制器(通过复制和粘贴UITableView)问题仍然存在。

Edit2 :如果我将底部约束更改为“视图底部”而不是“底部布局指南”,则效果很好。

问题是我的视图没有正确的高度,因为它应该位于标签栏下方。

有什么想法吗?

【问题讨论】:

automaticallyAdjustsScrollViewInsets not working的可能重复 【参考方案1】:

我已通过将属性 automaticallyAdjustsScrollViewInsets 设置为 NO 来解决此问题。

更多细节可以在这里找到: https://***.com/a/21302259/1295537

【讨论】:

【参考方案2】:

可能发生的情况是您禁用了剪辑,并且您的 tableView 的框架不是视图的整个高度。

或者,您可以设置 contentInsets,它也会更改滚动指示器的大小。

【讨论】:

我尝试使用以下命令禁用 contentInsets:[self.tableView setContentInset:UIEdgeInsetsMake(0, 0, 0, 0)]; 但它并没有改变任何东西。我也尝试过使用[self.tableView setClipsToBounds:YES] 启用剪辑(这是您的意思吗?),但仍然无法正常工作。感谢您的帮助。 你可以尝试通过 scrollIndicatorInsets 属性来移动 scrollIndicator,但这只会调整 scrollIndicator 的位置,而不是实际的大小 - 所以你的指示器可能仍然不会跨越整个高度。 设置指示器插入 0 不会改变任何东西。我也许可以使用负插图,但我不确定这是否非常干净 UIEdgeInsets insets = UIEdgeInsetsMake(0, 0, (-1)*50, 0); [self.tableView setScrollIndicatorInsets:insets]; 效果很好:( 我知道你修好了,但你也可以试试:self.edgesForExtendedLayout = UIRectEdgeNone OR self.automaticallyAdjustsScrollViewInsets = NO;【参考方案3】:

对于上述解决方案不起作用的人,试试这个。这没有任何意义,但它可以工作(在我的情况下,我需要 UITableView 在其他视图后面,所以我只是添加了一个虚拟视图)

https://***.com/a/23019724/1148910

【讨论】:

【参考方案4】:

您是否考虑过使用 Table View Controller,而不是使用普通的 View Controller 并在情节提要中拖入 tableview(我假设您正在这样做)?在那种情况下你不应该有这个问题(我从来没有)。您可以轻松地将 Table View Controller 嵌入 Tab Bar Controller 中。

希望这会有所帮助!

【讨论】:

感谢您的帮助,但为了获得更大的灵活性,我决定使用 UIViewController 而不是 UITableViewController

以上是关于滚动条没有到达表格视图的末尾的主要内容,如果未能解决你的问题,请参考以下文章

iOS 嵌套滚动视图——一直滚动到超级视图?

滚动条不会一直滚动到我的表格底部

如何解决MFC单文档滚动条拖动时的重影问题(高分)

当列表视图滚动到达末尾时添加列表视图页脚

表格 滚动条怎么调整

如何在 SwiftUI 中查找滚动视图内容是不是已到达内容的末尾