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

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

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

但是当我到达终点时

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

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

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

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

提前致谢

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

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

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

有什么想法吗?

【问题讨论】:

标签: ios objective-c uitableview scrollbar autolayout


【解决方案1】:

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

更多细节可以在这里找到: https://stackoverflow.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://stackoverflow.com/a/23019724/1148910

    【讨论】:

      【解决方案4】:

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

      希望这会有所帮助!

      【讨论】:

      • 感谢您的帮助,但为了获得更大的灵活性,我决定使用 UIViewController 而不是 UITableViewController
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-04-02
      • 2017-01-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多