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