阅读ios 8: Bundle path changes,看起来我需要更改我的应用程序,以便所有图形都在Resources目录中。
该应用正在使用FromFile
来访问应用中的文件,这样就行了。当我将整个图形目录移动到资源并尝试使用FromFile
时,应用程序崩溃,说无法找到该文件。
我已经使用了许多不同的方法来访问该文件,但我总是遇到崩溃(主要是因为有很多不同的页面都说不同的东西!)。
目前,我正在使用
var assembly = Assembly.GetCallingAssembly();
UIGraphics.BeginImageContext(scrlView.Frame.Size);
UIImage.FromResource(assembly, "Resources/Graphics/Backdrop/Backdrop35PC.png").Draw(scrlView.Bounds);
var img = UIGraphics.GetImageFromCurrentImageContext();
UIGraphics.EndImageContext();
scrlView.BackgroundColor = UIColor.FromPatternImage(img);
对于路径,我尝试省略Resources/
,将/
更改为.
以及其他任何不同的尝试方式,但不会导致崩溃。
有使用FromResource
的确切方法吗?我尝试过不使用assembly
,而是使用null
。但是,这只是崩溃了。
答案 0 :(得分:0)
FromResource
用于加载来自经典 .NET / Windows .res
文件的位图,而不是装入程序集中的位图(例如.dll
)。如果该文件存在于应用程序包中(而不在您的程序集中),那么您将使用错误的API。
在这种情况下,您应该使用FromFile
并确保您的路径正确,因为就像您指出的那样,iOS *改变了一些路径。这已在XI 8.4.0.27+中修复,因此您可以像之前一样继续使用Environment.GetFolderPath
。
对于早期版本,您可以使用" Working With The File System"中提供的代码。制品
var documents = NSFileManager.DefaultManager.GetUrls (NSSearchPathDirectory.DocumentDirectory, NSSearchPathDomain.User) [0];