iOS:表格视图,允许比结尾“向下”滚动

Posted

技术标签:

【中文标题】iOS:表格视图,允许比结尾“向下”滚动【英文标题】:iOS: Table view, allow scrolling "further down" than the end 【发布时间】:2015-01-09 13:29:33 【问题描述】:

抱歉,这个问题听起来有点混乱。我有两个按钮在底部与我的表格视图重叠,所以如果表格视图滚动“正常”,最后一行被这些按钮部分隐藏。这就是为什么我想允许像向下一行的高度一样滚动表格,所以最后一行位于这两个按钮的顶部。我怎样才能做到这一点?

【问题讨论】:

也许放大 contentSize 高度会起作用。 你能简单地把表格视图缩短一点,以便按钮显示在它下面吗? 【参考方案1】:

调整表格视图的内容插入。

例如,如果您的按钮高度为 50 点,并且您的表格框架是整个窗口,您可以将表格设置为与按钮顶部对齐,如下所示:

tableView.contentInset = UIEdgeInsetsMake(0, 0, 50, 0);

注意:在 ios 7+ 中,视图控制器有一个属性automaticallyAdjustsScrollViewInsets,默认设置为YES。当此属性设置为YES 时,您手动设置的 contentInsets 可能会被覆盖。假设您有一个想要在其下滚动的导航栏,您可以将顶部边缘插入设置为 topLayoutGuide 的长度。

您的最终解决方案(将其放入 viewDidLoad):

self.automaticallyAdjustsScrollViewInsets = NO;
tableView.contentInset = UIEdgeInsetsMake(self.topLayoutGuide.length, 0, 50, 0);

【讨论】:

完美,正是我想要的!谢谢朋友 很高兴我能帮上忙! p.s.这个技巧实际上与所有滚动视图相关(例如,表格视图、集合视图、Web 视图、滚动视图等) 很好的解释和简单的答案:) 为问题和答案投票。 2018 年弃用。developer.apple.com/documentation/uikit/uiviewcontroller/… @ScottyBlades 的替代品是什么?【参考方案2】:

正如其他人指出的那样,弃用使这个解决方案变得不可能,如果我们使用节页脚,它将一直显示在插图中。一个更简单的解决方案是添加一个 tableFooterView 以允许底部单元格滚动过去的按钮。像这样:

    let bottomView = UIView(frame: CGRect(x: 0, y: 0, width: self.view.frame.width, height: 83))
    bottomView.backgroundColor = .clear
    tableView.tableFooterView = bottomView

【讨论】:

【参考方案3】:

这将使内容向上移动。 如果您希望它们向下移动,您可以相应地更改插图。

    func shiftScrollingUp() 
        yourScrollView.contentInsetAdjustmentBehavior = .never
        yourScrollView.contentInset = UIEdgeInsetsMake(0, 0, 150, 0)
    

AutomaticallyAdjustsScrollViewInsetsis deprecated in ios 11.

【讨论】:

以上是关于iOS:表格视图,允许比结尾“向下”滚动的主要内容,如果未能解决你的问题,请参考以下文章

当用户向下滚动后向上滚动时,如何在表格视图中显示搜索框?

如何在快速向上和向下滚动表格时停止自动重新加载表格视图? [关闭]

当用户在表格视图中向下滚动时隐藏视图

向下滚动时如何使 UIButton 在表格视图中保持选中状态

当用户在表格视图中向下滚动时,如何将 UINavigationBar 背景颜色从透明更改为红色

如何以编程方式向下滚动表格