下载后如何在需求资源路径上检测Xamarin.iOS?

时间:2018-03-22 13:42:25

标签: ios xamarin xamarin.ios

在我的Xamarin.iOS项目中,我添加了一个随需应变资源标记,并使用beginAccessingResourcesWithCompletionHandler实例上调用的NSBundleResourceRequest实现了下载资源的代码。

此API下载了资源,之后在资源可用时调用了完成块,但是当我尝试使用UIImage.FromBundleNSBundle.MainBundle.PathForResource在UI中获取图像时,它始终返回{{1 }}

如何获得下载的路径" on demand" Xamarin.iOS中的资源?

添加代码以供参考 -

null

如果我将图像添加到assets.xcassets文件夹(1x,2x,3x),那么我无法下载图像。但是,如果我将图像直接添加到资源文件夹(只有一个图像 - 没有1x或2x或3x),那么在下载NSBundle.MainBundle.PathForResource后会返回正确的路径

1 个答案:

答案 0 :(得分:0)

首先,我假设您已正确设置On-Demand Resources并成功下载。

你可以尝试

NSBundleResourceRequest request = xxxx;
request.BeginAccessingResources((NSError error)=> {
   if (error == null)
   {
      NSError err = null;
      string str = request.Bundle.BundlePath;
      NSFileManager fm = NSFileManager.DefaultManager;   
      string[] dirArray = fm.GetDirectoryContent(str, out err);
      var result = dirArray.Where(x => x.Contains(".png"));
   }
   else {
       request.EndAccessingResources();
   }
});