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