我对iOS Xamarin c#development相对较新。
我为iPad创建了一个应用程序,按需(按钮DownloadDocuments)下载文档以供离线使用。 在下载过程中,“加载叠加层”显示为“微调器”。该应用程序正在使用中,一切都很好......但是。 现在客户端想要查看进度条而不是微调器。 设计是:Master-Detail控制器,按钮在master中,下载由“Utilities”类中的程序执行。
我在所有论坛中都阅读了很多帖子,但这个线程问题对我来说仍然是非常“terra Nova”。
我将UIProgressView编码为Loading overlay,我可以看到它,如果我为Progress属性分配了0.5f的值。 IO如何促进进展?
在哪里(如果必须)我调用新线程和进度值赋值: - 在Utilities.DounloadDocuments中? - 在下载文件的循环中(我正在使用WebClient)? - 在按钮处理程序中?
请有人帮助我。
答案 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);
你可以在这里看到一个例子......