加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ios – 位于IB中可见的单独包中的资源,但不在运行时中

发布时间:2020-12-14 19:19:21 所属栏目:百科 来源:网络整理
导读:我有一个应用程序,大多数图像资源都存储在单独的资源包中(这是有正当理由的).此资源包与主应用程序包一起添加到项目中,当我在Interface Builder中设计我的NIB时,所有这些图像在IB内部都可见(即它们出现在我的UI ImageView的下拉列表中,并且它们在我的UI中正
我有一个应用程序,大多数图像资源都存储在单独的资源包中(这是有正当理由的).此资源包与主应用程序包一起添加到项目中,当我在Interface Builder中设计我的NIB时,所有这些图像在IB内部都可见(即它们出现在我的UI ImageView的下拉列表中,并且它们在我的UI中正确显示).但是当我在模拟器中运行我的应用程序时,所有这些图像都丢失了.除了主应用程序包之外,有没有办法告诉UIKit在这个额外的资源包中查找这些图像?

我可以在viewDidLoad中手动加载这些图像没问题,但我正在寻找一种方法来使用Interface Builder来更容易地更改这些NIB的设计/皮肤.

更新:虽然该捆绑包中的图像文件在IB的下拉列表中可用,但它们不会在运行时加载.但是,如果我在IB中使用包名称为其名称添加前缀,如下所示:

然后它们将在运行时正确加载,但IB会将它们显示为大的蓝色问号.

现在的问题是 – 如何充分利用这两个世界并在IB(设计时)和运行时都正确显示图像.

解决方法

我遇到了同样的问题,这可能是由于 Xcode在组装捆绑目标时编译图像的方式.由于iOS上不完全支持捆绑目标,因此您必须将它们创建为Mac OS X目标.这留下了一个有问题的构建设置,即COMBINE_HIDPI_ARTWORK,它将被设置为YES.这会导致您的普通和@ 2x变体合并到捆绑包中的单个tiff文件中.结果文件在Mac OS上受支持,但在iOS上不受支持.

(感谢this answer的提示).

要解决此问题,请在File Navigator中选择创建捆绑包的项目,选择捆绑目标,切换到Build Settings选项卡,然后搜索上述设置.然后选择整行并点击删除或仅将其设置为NO.

此时,您应该能够在IB和代码中使用您的图像,而无需执行任何特殊操作(除了确保.xib和图像位于同一个包中).

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读