0

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

有人知道可能是什么问题吗?

是连接问题吗?

它可以在设备上正常工作吗?

4

1 回答 1

1

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

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

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

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

    [self.myTable setHidden:YES];

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

    //your code here will vary 

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

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

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

于 2012-06-01T15:11:33.973 回答