4
我正在建立一个使用UITableView
的聊天。自然地,每个聊天消息单元的行高会有很大差异。我已经正确计算了每个单元的行高,并且表视图按照它应该执行的那样执行。错误的滚动位置与estimatedHeightForRowAtIndexPath
但是,我想实施estimatedHeightForRowAtIndexPath:
以加快性能,以防万一消息。问题在于它影响了scrollToRowAtIndexPath:atScrollPosition:Animated:
的滚动行为。
在我的viewWillAppear
生命周期方法中,我告诉表视图以向下滚动到最新消息(即底部消息),如果我不使用estimatedHeightForRowAtIndexPath:
,则执行得很好,但只要我这样做,似乎就好像是只有从这个方法返回的值被用来计算滚动位置,并且我在错误的位置结束。
是否有可能从使用estimatedHeightForRowAtIndexPath:
而不影响滚动行为的效率收益中受益?
在我的情况是什么,这个方法才能正常工作,我将不得不计算组合我的表格视图中所有行的高度正确吗?是不是像使用'heightForRowAtIndexPath:'没有'estimatedHeightForRowAtIndexPath:'一样昂贵? – 2015-02-09 22:35:21
是的,你是对的。但我认为只要您需要以编程方式滚动,计算无法绕过。无论是由系统自己计算还是在'scrollToRowAtIndexPath'中计算。 – dopcn 2015-02-10 01:39:38
嗯,那就是我所害怕的。我必须找出一种方法来尽可能高效地进行计算:) – 2015-02-10 13:39:35