我正处于一些关于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资源组合列表中时。
任何提示?
(如果有些不清楚,请询问,我会尝试以某种方式改写它)
提前问候和感谢。