【发布时间】:2018-03-22 13:42:24
【问题描述】:
在我的 Xamarin.iOS 项目中,我添加了一个按需资源标记并实现了代码以使用在 NSBundleResourceRequest 实例上调用的 beginAccessingResourcesWithCompletionHandler 下载资源。
此 API 下载资源,然后在资源可用时调用完成块,但是当我尝试使用 UIImage.FromBundle 和 NSBundle.MainBundle.PathForResource 在 UI 中获取图像时,它总是返回 null。
如何在 Xamarin.iOS 中获取下载的“按需”资源的路径?
添加代码供参考-
request = new NSBundleResourceRequest(new[] { "OnLoad" });
request.BeginAccessingResources((NSError obj) =>
{
if (obj != null)
Console.WriteLine("Error occurred: {0}");
else
{
NSOperationQueue.MainQueue.AddOperation(() =>
{
InvokeOnMainThread(() =>
{
var imagePath1 = NSBundle.MainBundle.PathForResource("image1", "jpg");
var image = UIImage.FromFile(imagePath1);
});
});
}
});
如果我将图像添加到 assets.xcassets 文件夹(1x、2x、3x),则无法下载图像。但是,如果我将图像直接添加到资源文件夹(只有一个图像 - 没有 1x 或 2x 或 3x),那么在下载 NSBundle.MainBundle.PathForResource 后会返回正确的路径
【问题讨论】:
-
您是否尝试过 Environment.SpecialFolder 中列出的文件夹之一?Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
-
谢谢丹尼尔。试过这个,但对我不起作用。如果我将图像添加到 assets.xcassets 文件夹,则无法下载图像。但是,如果我将图像直接添加到资源文件夹中,那么在下载 NSBundle.MainBundle.PathForResource 后会返回正确的路径
标签: ios xamarin xamarin.ios