UITableView 的数据啥时候加载?啥时间 tableview 调用它的委托方法。 viewWill 之后会出现吗?
Posted
技术标签:
【中文标题】UITableView 的数据啥时候加载?啥时间 tableview 调用它的委托方法。 viewWill 之后会出现吗?【英文标题】:When UITableView's data is loaded? What's time tableview call its delegate methods. After viewWillAppear?UITableView 的数据什么时候加载?什么时间 tableview 调用它的委托方法。 viewWill 之后会出现吗? 【发布时间】:2014-07-31 16:58:35 【问题描述】:我想知道UITableview
的数据何时加载。
我的意思是,当我创建一个UITableView
时,通常我会设置它的数据源和委托。之后,这个 tableview 将被添加为子视图。
但是,如果我不调用 reload
方法,我不知道 tableview 何时知道它需要询问其代表并显示数据。换句话说,由于视图没有viewWillAppear
方法,tableview 询问其委托并显示数据的确切时间是什么?
我已经尝试了一些:
在viewDidLoad
中,我创建了一个表格视图,将其添加为子视图,但没有设置其委托。显然,数据没有加载。
然后我设置它的委托,一旦我点击一个按钮,它的数据就不会加载。
但是当再次调用tableview的控制器的viewWillAppear
时(当控制器消失又出现时),数据就被加载了。
【问题讨论】:
【参考方案1】:没有通用的设置时间,因为 UITableView 的显示数据是在单元格中,并且单元格是动态加载的。 (也可能重复使用)您可以调用 reload,但这只是指示表重新获取可见单元格上的数据。问题仍然存在:你为什么需要知道?如果您需要在将数据加载到单元格之前对其进行拦截,请在 cellForRowAtIndexPath 中进行,您应该在其中将数据填充到单元格中。
【讨论】:
我想了解 tableview 是如何工作的。因为我想构建一个 barChartView 并模仿 UITableView 一样的机制。但是尽管调用了 reload 方法并触发视图来调用它的委托方法,我希望这个 barChartView 可以在视图出现后加载数据。 我认为重要的是要注意绘图不是实时完成的。创建 UITableView 时,您创建了一组例程,系统在准备好获取数据或准备显示新单元格时调用这些例程。所以表格视图的大部分操作都是由系统完成的,程序员只需要提供系统在想知道表格中放什么时调用的例程即可。以上是关于UITableView 的数据啥时候加载?啥时间 tableview 调用它的委托方法。 viewWill 之后会出现吗?的主要内容,如果未能解决你的问题,请参考以下文章