Swift UITableViewController减少加载时间

时间:2015-07-22 16:29:13

标签: ios swift uitableview

我目前正在Swift 1.2中创建一个带有主从细节UITableViewController设置的iOS应用程序,以便MasterTableViewController具有推送到DetailTableViewController的单元格。

DetailTableViewController具有相当复杂的单元格,可以从Web客户端提取数据以生成图表,类似于Apple的Health应用程序。所有数据下载通常需要大约5-10秒。

因此,在显示DetailTableViewController之前点击MasterTableViewController中的单元格时会有5-10秒的延迟。

我最好立即从MasterTableViewController推送到DetailTableViewController,然后在DetailTableViewController页面上显示一个活动指示器,当下载所有数据时该活动指示器被解除。

有人能指出我朝这个目标迈进吗?谢谢! :)

我的代码如下所示,从主页推送到详细信息。相当基本。我觉得如果我在viewDidLoad或cellForRowAtIndexPath方法中改变某些东西,我可以很容易地完成这个。

func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
    tableView.deselectRowAtIndexPath(indexPath, animated: false)
    let detailVC = DetailTableViewController()
    detailVC.navigationItem.title = "Your Charts"
    self.navigationController?.pushViewController(detailVC, animated: true)
}

1 个答案:

答案 0 :(得分:2)

在详细视图控制器上,您可以创建UIActivityIndi​​catorView变量。

在viewDidAppear中,您可以调用活动指示器,将其置于前面并开始设置动画。

创建一个填充数组的函数,该数组将存储您的单元格将使用的数据,并重新使用您的cellForRowAtIndexPath来使用它。 (而不是在每个单元格中获取数据)。

然后在您的函数中获取数据,在更新表之后(或之前)告诉活动指示器停止动画。