滚动时如何使 UITableView 从下到上显示?

Posted

技术标签:

【中文标题】滚动时如何使 UITableView 从下到上显示?【英文标题】:How to make UITableView appear from bottom to top when scroll? 【发布时间】:2014-09-02 12:41:54 【问题描述】:

我只是在寻找一般场景。这个想法是当应用程序启动时,用户只能在 UIViewController 底部看到 UITableView 的第一个单元格。当用户向上滚动时会出现完整的表格,向下滚动时只会再次显示第一个单元格。类似于 Facebook Messenger 应用程序中的键盘,但使用的是 tableView。现在我将tableView作为子视图添加到scrollView,但问题是tableView从上到下出现,我正在寻找解决方案如何让这个工作颠倒过来。所以,tableView必须从UIViewController的底部到顶部出现。

【问题讨论】:

你应该使用滚动视图。在 scrollview 内添加 tableview 并使用 scrollview 内容偏移值。 【参考方案1】:

我的想法是:

viewDiDLoad 处为您的UITableView 提供所需的框架(可能是UIView 底部的1 个单元格的高度) 让你的UIViewController实现UIScrollViewDelegate- (void)scrollViewDidScroll:(UIScrollView *)scrollViewUIScrollViewDelegate 检查哪个元素正在滚动(如果它是您的UITableView)并检查用户正在滚动的方向 根据需要更改UITableView 的框架,您还必须提出一些逻辑来阻止进一步更改UITableView 的框架(我猜这里使用 BOOL 会很好)

【讨论】:

【参考方案2】:

不确定我是否理解正确,但也许这会有所帮助

我相信您可以尝试添加具有透明背景的零单元格(或UITableView 的第一部分标题视图)。这样您的第一个单元格将被放置在屏幕底部,UITableView 高度将等于屏幕高度。

在这种情况下,您将只有一个滚动视图(尤其是UITableView)。当用户点击第一个单元格时,可以使用以下方法执行可展开动画并将表格滚动到顶部以隐藏零单元格:

[UITableView scrollRectToVisible:animated:]

之后,您可以保留 UITableView 原样,并在需要时以与之前展开相同的方式“收缩”您的表格。

【讨论】:

【参考方案3】:

我明白你想做什么。 一般来说,UITableView 从上到下显示单元格。

你可以在tableview中添加transform:

tableView.transform = CGAffineTransform(scaleX: 1, y: -1)

然后您的 tableview 将从下到上显示单元格,您可以从下到上滚动 tableview。 但是单元格将被转换为表格视图,因此您还必须为单元格添加相同的转换。

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell 
    var cell: UITableViewCell = tableView.dequeueReusableCell(withIdentifier: "cell")

    **cell.transform = tableView.transform**

    return cell

全部完成。希望对您有所帮助!

【讨论】:

以上是关于滚动时如何使 UITableView 从下到上显示?的主要内容,如果未能解决你的问题,请参考以下文章

xcode - 从下到上的 TableView 行

如何在集合视图中设置项目从下到上快速

从下到上显示元素,如 facebook 消息

iOS UIScrollView 以编程方式从下到上添加元素

从下到上堆叠 div

从下到上显示聊天消息