在我的Xamarin.iOS项目中,我添加了一个随需应变资源标记,并使用beginAccessingResourcesWithCompletionHandler
实例上调用的NSBundleResourceRequest
实现了下载资源的代码。
此API下载了资源,之后在资源可用时调用了完成块,但是当我尝试使用UIImage.FromBundle
和NSBundle.MainBundle.PathForResource
在UI中获取图像时,它始终返回{{1 }}
如何获得下载的路径" on demand" Xamarin.iOS中的资源?
添加代码以供参考 -
null
如果我将图像添加到assets.xcassets文件夹(1x,2x,3x),那么我无法下载图像。但是,如果我将图像直接添加到资源文件夹(只有一个图像 - 没有1x或2x或3x),那么在下载NSBundle.MainBundle.PathForResource后会返回正确的路径
答案 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();
}
});