从底部启动UITableView

问题描述 投票:3回答:3

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

ios objective-c uitableview
3个回答
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


0
投票

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

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

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

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

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

希望这可以帮助。


0
投票

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

取自:Igor Kulman

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

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

并以同样的方式翻转你的细胞

cell.contentView.transform = CGAffineTransform(scaleX: 1, y: -1)
© www.soinside.com 2019 - 2024. All rights reserved.