如何用UIProgress视图替换Spinner?

时间:2015-07-30 19:07:21

标签: c# ios

我对iOS Xamarin c#development相对较新。

我为iPad创建了一个应用程序,按需(按钮DownloadDocuments)下载文档以供离线使用。 在下载过程中,“加载叠加层”显示为“微调器”。该应用程序正在使用中,一切都很好......但是。 现在客户端想要查看进度条而不是微调器。 设计是:Master-Detail控制器,按钮在master中,下载由“Utilities”类中的程序执行。

我在所有论坛中都阅读了很多帖子,但这个线程问题对我来说仍然是非常“terra Nova”。

我将UIProgressView编码为Loading overlay,我可以看到它,如果我为Progress属性分配了0.5f的值。 IO如何促进进展?

在哪里(如果必须)我调用新线程和进度值赋值: - 在Utilities.DounloadDocuments中? - 在下载文件的循环中(我正在使用WebClient)? - 在按钮处理程序中?

请有人帮助我。

1 个答案:

答案 0 :(得分:0)

首先需要添加类型为Progress的类,并将事件附加到ProgessChanged事件。当那个火灾发生时你会设置" Progess" UIProgressView的值。

Progress<DownloadBytesProgress> progress = new Progress<DownloadBytesProgress>();
            progress.ProgressChanged += (s, args) => UIProgressBar.Progress = args.PercentComplete;

然后在下载例程中,在下载每个数据块之后,您将设置...

DownloadBytesProgress args = new DownloadBytesProgress(urlToDownload, receivedBytes, totalBytes);
                progess.Report(args); 

你可以在这里看到一个例子......

github download progress