从底部启动UITableView

时间:2015-01-04 08:29:50

标签: ios objective-c uitableview

我是Objective-C编程的新手,而且我正在创建一个需要Table View从底部加载到顶部的应用程序,类似于消息传递应用程序。我试过在谷歌上搜索这个,但我仍然对使用的代码感到困惑。提前致谢!

3 个答案:

答案 0 :(得分:0)

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

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

请注意,根据您是否使用Autolayout,您拨打该电话的位置可能会有所不同。

有关详细信息,请参阅How to scroll to the bottom of a UITableView on the iPhone before the view appears

答案 1 :(得分:0)

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

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

2 - 当我添加新单元格(消息)时,我会更改Y的{​​{1}}位置。例如,当第一条消息被添加到数据源数组时,我将计算该单元格的高度,因此如果该单元格的高度为50,我将设置UITableView的{​​{1}}位置。 }作为Y的当前高度减去正在添加的单元格的高度。这使得它看起来像是从底部添加消息。

3 - 在步骤2中重复上述循环,直到UITableView的{​​{1}}位置低于屏幕顶部(或所需位置),在这种情况下,您不再拥有将减去的值设置为UITableView位置(否则tableview将关闭屏幕)。添加Y条件,检查计算值是否为UITableView而不是所需位置,如果是,则自己设置Y位置(因此表格固定在顶部)。

4 - 同时确保始终使用if滚动到lower的最后一个单元格。

希望这有帮助。

答案 2 :(得分:0)

解决此问题的另一种方法是通过翻转UITableView的Y轴

摘自:Igor Kulman

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

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

并以相同的方式翻转单元格

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