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

时间:2014-09-02 12:41:55

标签: ios iphone uitableview uiscrollview

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

3 个答案:

答案 0 :(得分:0)

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

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

在这种情况下,您将只有一个滚动视图(特别是UITableView)。以下方法可用于执行可扩展动画和滚动表到顶部,以便在用户点击第一个单元格时隐藏零单元格:

[UITableView scrollRectToVisible:animated:]

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

答案 1 :(得分:0)

我的想法是:

  • UITableView(可能是{1}}底部1个单元格的高度)给您viewDiDLoad所需的框架
  • 让您UIView实施UIViewController
  • UIScrollViewDelegate - (void)scrollViewDidScroll:(UIScrollView *)scrollView检查哪个元素正在滚动(如果是您的UIScrollViewDelegate)并检查用户正在滚动的方向
  • 根据需要更改UITableView的框架,您还必须提出一些逻辑来阻止进一步更改UITableView的框架(BOOL会做得很好)我估计在这里)

答案 2 :(得分:0)

我了解您想要做什么。 通常,UITableView从上到下显示单元格。

您可以在tableview中添加转换:

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

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

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

    **cell.transform = tableView.transform**

    return cell
}

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