Xamarin Studio 仅在编译应用程序时导出将存在于顶级应用程序包目录中的图像。这是因为 Xcode 的 .xib 文件似乎只能引用顶级应用程序包中的图像。
有多种方法可以实现您的目标:
第一个选项是将 a 指定为LogicalName
您希望将名称包含在已编译的应用程序包中的任何名称。在 Xamarin Studio 中,此属性称为Resource ID
(根据您使用的 Xamarin Studio 版本,可能可用也可能不可用 - 它只是最近添加的)。您还可以通过编辑 *.csproj 文件来设置 LogicalName,如下所示:
<BundleResource Include="Icons\icon.png">
<LogicalName>icon.png</LogicalName>
</BundleResource>
通常,该Icons\icon.png
文件将作为 复制到 iOS 应用程序包中Icons/icon.png
,但是,LogicalName 属性会覆盖相对安装路径/名称。在这种情况下,它将被简单地复制过来icon.png
。
作为另一个例子,你也可以这样做:
<BundleResource Include="Icons\iOS\icon.png">
<LogicalName>AppIcon.png</LogicalName>
</BundleResource>
这会将Icons\iOS\icon.png
文件复制到 iOS 应用程序包的根目录中,并将其重命名为AppIcon.png
.
第二种选择是简单地将图像文件移动到Resources
文件夹中。Resources 文件夹是一个特殊目录,当复制到 iOS 应用程序包时,它会从默认路径名中删除。换句话说,Resources\icon.png
它将被复制到 iOS 应用程序包的根目录中,icon.png
而不是Resources\icon.png
像普通项目目录那样。
第三种选择是简单地注册您自己的其他“资源”目录(它们可以存在于其他目录中,包括默认的资源目录)。
例如,您的项目中可能具有以下结构:
Resources/
Icons/
icon.png
icon@2x.png
在您的 *.csproj 文件中,编辑以下标签:
<IPhoneResourcePrefix>Resources</IPhoneResourcePrefix>
并将其替换为:
<IPhoneResourcePrefix>Resources;Resources\Icons</IPhoneResourcePrefix>
这将确保 icon.png 和 icon@2x.png 文件安装在 iOS 应用程序包的根目录中。