选择tableview元素时缓慢推送

时间:2012-06-01 14:50:24

标签: ios xml parsing performance

在我的应用程序中,我使用的是tableviews,通过XML解析填充,我从ftp获取XML,XML包含其他xml url,用于下一个视图和图像的URL和文本,问题是当tableview的一个元素时被选中它推到另一个视图,但加载很长一段时间。 我将我的应用程序运行到模拟器中,我从未在设备上进行过测试。

有谁知道可能是什么问题?

是连接问题吗?

它能在设备上正常工作吗?

1 个答案:

答案 0 :(得分:1)

我建议您在设备上测试您的代码,而不是对其进行假设。我假设您要去服务器并要求在推送的视图中显示这些图像。在这种情况下,您应该使用图像占位符加载视图,并在辅助线程中剥离下载图像(缓慢加载的好习惯,以便不阻止UI),并在图像数据可用时更新图像占位符。

如果您需要更具体的帮助,我很乐意更新此答案。

如果要在推送视图中加载tableview,则在推送视图之前的视图上将发生挂起(这是非常糟糕的UX)。因此,将需要一段时间的代码逻辑移动到“推送视图”的子类中,您可以在处理数据时实现类似微调器(我使用MBProgressHud)的内容。这样您就可以在延迟开始之前加载视图。

现在改善用户体验的流程如下:
1.在推送视图的- (void)viewDidLoad中,您可以隐藏表格视图(或不隐藏)。

    [self.myTable setHidden:YES];

2。在推送视图的-(void)viewDidAppear:(BOOL)animated中,抛出一个微调器,让用户知道你正在做的工作(这里是去服务器寻找网址中的图像)并完成工作。

    //your code here will vary 

3。当您知道所有数据都已下载时,只需加载表格,隐藏微调器并显示表格。您可以在-(void)viewDidAppear:(BOOL)animated方法的末尾执行此操作。

    [MBProgressHUD hideHUDForView:self.view animated:YES];
    [myTable reloadData];

我建议将所有昂贵的工作发送到辅助线程,因为用户不愿意等待并在导航栏中有一个阻止的后退按钮。但是为了回答你原来的问题,你应该立即加载视图,然后等待获取数据。