【问题标题】:Start UITableView from the bottom从底部启动 UITableView
【发布时间】:2015-01-04 08:29:49
【问题描述】:

我是 Objective-C 编程的新手,我正在制作一个需要从底部到顶部加载表格视图的应用程序,类似于消息传递应用程序。我试过在谷歌上搜索这个,但我仍然对使用的代码有点困惑。提前致谢!

【问题讨论】:

  • 动态设置tableview框架怎么样?

标签: ios objective-c uitableview


【解决方案1】:

UITableView 根据屏幕上可见的内容轮询其dataSource 中的单元格。所以,问题的关键是你想先显示表格的底部。

为此,您可以调用[tableView setContentOffset:CGPointMake(0, CGFLOAT_MAX)];,这会将UITableView 滚动到底部。

请记住,您拨打电话的位置可能会因您是否使用自动布局而异。

更多信息请参见How to scroll to the bottom of a UITableView on the iPhone before the view appears

【讨论】:

  • 我不明白这是如何回答这个问题的。该人请求了一个列表,例如消息应用程序,其中项目从屏幕底部开始。
【解决方案2】:

这是我在设计聊天机器人时所做的:

1 - 在 IB 中添加 UItableView 并设置其约束。

2 - 当我添加一个新单元格(消息)时,我会更改UITableViewY 位置。例如,当第一条消息添加到数据源数组时,我会计算那个单元格的高度,所以如果那个单元格的高度是 50,我会将我的UITableViewY 位置设置为当前UITableView 的高度减去正在添加的单元格的高度。这使它看起来像是从底部添加消息。

3 - 在步骤 2 中重复上述循环,直到您的 UITableViewY 位置刚好在屏幕顶部下方(或所需位置),在这种情况下,您不再需要设置减去值作为Y 位置(否则表格视图将离开屏幕)。添加一个if 条件,检查计算值是否为lower 而不是所需位置,如果是,则只需自己设置Y 位置(因此表格固定在顶部)。

4 - 还要确保始终使用 scrollToRowAtIndexPath 滚动到 UITableView 的最后一个单元格。

希望这会有所帮助。

【讨论】:

    【解决方案3】:

    解决这个问题的另一种方法是翻转 UITableView 的 Y 轴

    取自:Igor Kulman

    我找到的最佳解决方案是翻转 UITableView 的 Y 轴。它为您提供了先前解决方案的所有优点,但您不必处理滚动条。它停留在正确的位置,因为只有内容被翻转。 所以翻转 UITableView

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

    以同样的方式翻转你的单元格

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-10-23
      • 1970-01-01
      • 1970-01-01
      • 2014-11-27
      • 2016-07-22
      • 2013-09-12
      • 2012-01-07
      • 1970-01-01
      相关资源
      最近更新 更多