首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法在CocoaPods中从.xcasset加载图像

无法在CocoaPods中从.xcasset加载图像
EN

Stack Overflow用户
提问于 2015-10-11 17:01:12
回答 4查看 4.6K关注 0票数 10

我正在创建一个pod,并且我有一个我想要使用的图像资产目录。在我的.podspec文件中,我将其设置如下:

代码语言:javascript
复制
s.resource_bundles = {
  'MyPodResources' => ['*.xcassets']
}

Images.xcassets在pod的根目录下。

当我尝试使用imageNamed()加载图像时,它就是不起作用。我没有收到错误或警告,但没有图像显示。

有趣的是,如果我尝试在示例应用程序的Main.storyboard中添加一个图像,我可以选择该图像,它在Interface Builder中显示得很好。但是,当我运行示例应用程序时,图像不可见。

我已经查看了GH上的所有问题,但仍然找不到解决方案……是Xcode7/iOS 9的问题吗?

谢谢!

EN

回答 4

Stack Overflow用户

发布于 2016-04-12 14:18:42

最后,我为UIImage编写了一个扩展,并将其放在pod目录中。它看起来是这样的:

代码语言:javascript
复制
class func bundledImage(named: String) -> UIImage? {
    let image = UIImage(named: named)
    if image == nil {
        return UIImage(named: named, inBundle: NSBundle(forClass: MyBasePodClass.classForCoder()), compatibleWithTraitCollection: nil)
    } // Replace MyBasePodClass with yours
    return image
}

我像这样使用它:imageView.image = UIImage.bundledImage("icon-grid")

就是这样,希望有人能找到有用的东西!

票数 8
EN

Stack Overflow用户

发布于 2020-03-24 22:22:12

我也遇到了同样的问题,我发现了一小段关于.podspec文件的重要信息

我试图在故事板的.xcassets中使用我的pods捆绑包中的图像,它在故事板中显示得很好,但当我运行应用程序时,它会崩溃,说找不到资源。

我更改了我的播客规范,使其既包含s.resource_bundles也包含s.resources

代码语言:javascript
复制
s.resource_bundles = {
  'SDKRes' => ['SDK/Assets/*']
}

s.resources = ['SDK/Assets/*.{xcassets}']

然后它就能够从故事板中正确地加载资源了

票数 2
EN

Stack Overflow用户

发布于 2017-11-01 15:20:43

在Swift 3中:

代码语言:javascript
复制
let bundle: Bundle = Bundle(identifier: "Framework Bundle ID")!
yourImageView.image =  UIImage(named: "imageNameInAssets", in: bundle, compatibleWith: nil)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33063233

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档