2010-11-17 43 views
0

你怎么知道你使用UITableViewIndex滚动?
我有一些基本的信息显示在我的单元格上,当我跳/滚动时,我需要通过请求项目的组(页面)来检索有关thoses单元格的信息。我需要一种方法来知道我已经停止了滚动(我使用了scrollViewDidEndDecelerating),但是使用UITableViewIndex我们只需跳到另一个索引或滚动它们即可。使用UITableViewIndex检测跳转

回答

0

您得到的唯一反馈是UITAbleViewDelegate协议 - 这些都没有报告表视图已滚动。

但是,您将拨打电话给tableView:cellForRowAtIndexPath:调用您的数据源 - 这会告诉您表视图已移动到足够需要新的单元格。

此外,您有UITableView本身的visibleCells属性,以查看您在表格中的位置?

如果您在问题中提供更多细节,您可能会有所帮助 - 为什么您需要知道滚动发生了?

0

UITableView继承自UIScrollView,因此您还可以实现UIScrollViewDelegate方法,如scrollViewDidScroll。当表格视图滚动时,这些将被调用。

但是,如果你解释了为什么你需要知道表视图是否滚动,那么可能会有更好的答案。

编辑:
从你更新的问题,它仍然不是完全清楚是否需要滚动视图的委托方法。

如果您只是需要更新单元格的内容,请将它放在cellForRowAtIndexPath中,当单元格进入视图时,表格视图会自动调用它。

如果您需要更新表视图以外的内容,您可能仍然可以在cellForRowAtIndexPath中执行此操作,或者您可以处理scrollViewDidEndDecelerating:然后使用表视图的visibleCells或indexPathsForVisibleRows方法来获取当前可见的单元格列表。

+0

你说“UITableViewIndex”,所以我认为你的意思是你有一个索引表视图(右边的A-Z索引),并且你想知道用户何时触及它。如果您正确实现了cellForRowAtIndexPath,则无论用户如何进入该部分,数据都应该正常显示。 – Anna 2010-11-17 15:59:32

+0

但我有一些“假”的信息,直到它通过远程调用进行更新,在一次调用中为一批文章完成 – CiNN 2010-11-17 17:35:37

+0

您可以使用一些BOOL标志指示信息是否为假/真实。在cellForRowAtIndexPath中,假如其他人显示真实信息,则显示“加载...”。当远程调用完成后,它应该更新表视图的数据源并将该标志设置为“真实”,然后调用将重新自动调用cellForRowAtIndexPath的[tableView reloadData]。如果您不想/不需要重新加载整个表,您也可以调用reloadRowsAtIndexPaths或reloadSections。 – Anna 2010-11-17 17:44:57