生成在导入的pod .xcasset中的图像在Interface Builder故事板中是可选择的(并且是可查看的),但不会在模拟器中显示

时间:2016-10-13 16:12:34

标签: ios swift xcode cocoapods xcasset

我正处于一些关于Cocoapods,.xcassets,Swift 3,“跨项目加载图像”(从pod包到主故事板)的“概念证明”项目中间等等......

我现在的主要问题是“生活在导入的.xcasset中的图像(通过pod安装/更新)是可选择的,并且出现在Interface Builder主项目故事板中,但不会在模拟器中显示”。

在运行时,运行我的主应用程序的模拟器产生如下: 在尝试渲染所选图像时,无法加载标识符为“MyCompany.ios-appbase” 的捆绑中从nib引用的“cx_green_tick”图像。然后没有任何东西出现在预期的占位符空间,只是空白区域。

MyCompany.ios-appbase 是我的主应用的捆绑名称。

cx_green_tick 是我的“Commons”导入项目Media.xcasset文件夹中的一些图像资源的逻辑名称。 此图像资源包含3个正确的.png文件及其@ 1x,@ 2x,@ 3x名称等...

我的Commons Pod项目(包含我想在我的主项目中使用的.xcasset文件/文件夹的项目)有一个.podspec文件,其中包含以下资源定义(以及许多其他内容):

s.resources = [ 'Commons/**/*.{png,jpeg,jpg,storyboard,xib,ttf,otf}' , 'Commons/**/*.{xcassets, imageset, json}' ]

一旦我进入主项目的根文件夹,我只需输入“pod update / install”,我就可以看到我在主应用程序Podfile中定义的不同pod如何开始下载并完美存储到预期中我主要项目的Pods文件夹。

然后,在Xcode中,我可以看到Pods / Commons / Media.xcassets容器内部是否有预期的 cx_green_tick 图像资源,其中有3个正确的分辨率。< / p>

然后我切换到我的主应用程序Main.storyboard并选择要用于UIImageView占位符的 cx_green_tick 图像资源。每当我这样做时,我都可以看到这个绿色刻度图像是如何出现在IB中的。但是,如果我运行模拟器,则此图像不会出现在其占位符上。

我正在使用Swift 3.0,XCode 8,部署目标是iOS 9.我所涉及的所有Podfiles都有 use_frameworks! 关键字/行激活。

我真的在谷歌上搜索了好几个小时(昨天和今天),但我无法看到任何提示如何在不必手动编程的情况下进行图像加载。 (如果它是可以实现的,我毕竟不能确定这一点)

BTW:如果我以编程方式加载此图像,明确选择图像资源位于 Media.xcassets 内的图像束,则图像在模拟器中显示没有任何问题。

这可能是部分解决方案,但我们的主要目标是不必手动执行图像加载。特别是当(显然)IB将此图像显示在UIImageView占位符屏幕顶部的image_name资源组合列表中时。

任何提示?

(如果有些不清楚,请询问,我会尝试以某种方式改写它)

提前问候和感谢。

0 个答案:

没有答案