从底部启动 UITableView
Start UITableView from the bottom
我是 Objective-C 编程的新手,我正在制作一个需要 Table 视图从底部到顶部加载的应用程序,类似于消息传递应用程序。我已经尝试在 Google 上搜索关于此的内容,但我对所使用的代码仍然有些困惑。提前致谢!
UITableView
根据屏幕上可见的内容轮询其 dataSource
单元格。所以,你的问题的关键是你想先显示 table 的底部。
为此,您可以调用 [tableView setContentOffset:CGPointMake(0, CGFLOAT_MAX)];
,这会将 UITableView
滚动到底部。
请记住,调用的位置可能因您是否使用自动版式而异。
有关详细信息,请参阅 How to scroll to the bottom of a UITableView on the iPhone before the view appears
这是我在设计聊天机器人时所做的:
1 - 在 IB 中添加一个 UItableView 并设置其约束。
2 - 当我添加一个新单元格(消息)时,我会更改 UITableView
的 Y
位置。例如,当第一条消息添加到数据源数组时,我会计算该单元格的高度,因此如果该单元格的高度为 50,我将设置我的 UITableView
的 Y
位置] 作为 UITableView
的当前高度减去要添加的单元格的高度。这使得消息看起来像是从底部添加的。
3 - 在第2步重复上述循环,直到你的UITableView
的Y
位置刚好在屏幕顶部(或要求的位置)下方,在这种情况下你没有不再需要将减去的值设置为 Y
位置(否则 table 视图将离开屏幕)。添加一个 if
条件,检查计算值是否比所需位置 lower
,如果是,则自己设置 Y
位置(因此 table 固定在顶部)。
4 - 还要确保始终使用 scrollToRowAtIndexPath
滚动到 UITableView
的最后一个单元格。
希望这对您有所帮助。
另一种解决方法是翻转 UITableView 的 Y 轴
取自:Igor Kulman
我找到的最佳解决方案是翻转 UITableView 的 Y 轴。它为您提供了先前解决方案的所有优点,但您不必处理滚动条。它停留在正确的位置,因为只有内容被翻转了。
所以翻转 UITableView
tableView.transform = CGAffineTransform(scaleX: 1, y: -1)
并以同样的方式翻转你的单元格
cell.contentView.transform = CGAffineTransform(scaleX: 1, y: -1)
我是 Objective-C 编程的新手,我正在制作一个需要 Table 视图从底部到顶部加载的应用程序,类似于消息传递应用程序。我已经尝试在 Google 上搜索关于此的内容,但我对所使用的代码仍然有些困惑。提前致谢!
UITableView
根据屏幕上可见的内容轮询其 dataSource
单元格。所以,你的问题的关键是你想先显示 table 的底部。
为此,您可以调用 [tableView setContentOffset:CGPointMake(0, CGFLOAT_MAX)];
,这会将 UITableView
滚动到底部。
请记住,调用的位置可能因您是否使用自动版式而异。
有关详细信息,请参阅 How to scroll to the bottom of a UITableView on the iPhone before the view appears
这是我在设计聊天机器人时所做的:
1 - 在 IB 中添加一个 UItableView 并设置其约束。
2 - 当我添加一个新单元格(消息)时,我会更改 UITableView
的 Y
位置。例如,当第一条消息添加到数据源数组时,我会计算该单元格的高度,因此如果该单元格的高度为 50,我将设置我的 UITableView
的 Y
位置] 作为 UITableView
的当前高度减去要添加的单元格的高度。这使得消息看起来像是从底部添加的。
3 - 在第2步重复上述循环,直到你的UITableView
的Y
位置刚好在屏幕顶部(或要求的位置)下方,在这种情况下你没有不再需要将减去的值设置为 Y
位置(否则 table 视图将离开屏幕)。添加一个 if
条件,检查计算值是否比所需位置 lower
,如果是,则自己设置 Y
位置(因此 table 固定在顶部)。
4 - 还要确保始终使用 scrollToRowAtIndexPath
滚动到 UITableView
的最后一个单元格。
希望这对您有所帮助。
另一种解决方法是翻转 UITableView 的 Y 轴
取自:Igor Kulman
我找到的最佳解决方案是翻转 UITableView 的 Y 轴。它为您提供了先前解决方案的所有优点,但您不必处理滚动条。它停留在正确的位置,因为只有内容被翻转了。 所以翻转 UITableView
tableView.transform = CGAffineTransform(scaleX: 1, y: -1)
并以同样的方式翻转你的单元格
cell.contentView.transform = CGAffineTransform(scaleX: 1, y: -1)