Cocoapod lib开发时无法加载资源图像资源(仅在真正的iPhone上发生。模拟器运行良好)

时间:2016-05-17 07:13:28

标签: ios iphone cocoapods

我使用pod lib create创建项目。

project structure

CKTextView/Resources/CKTextView/Assets/image.xcassets包含两个关于checkBox样式的图像。

enter image description here

我在CheckBoxListItem.swift文件中初始化一个UIButton。

private func setupCheckBoxButton(keyY: CGFloat, ckTextView: CKTextView)
{
    let lineHeight = ckTextView.font!.lineHeight
    let distance = lineHeight - 4

    button = UIButton(frame: CGRect(x: 12, y: keyY + 3, width: distance, height: distance))
    button!.addTarget(self, action: #selector(self.checkBoxButtonAction(_:)), forControlEvents: .TouchUpInside)

    changeCheckBoxButtonBg()

    // Append label to textView.
    ckTextView.addSubview(button!)
}

func changeCheckBoxButtonBg() {
    let name = isChecked ? "icon-checkbox-checked" : "icon-checkbox-normal"

    let bundle = NSBundle(forClass: CheckBoxListItem.self)
    let backgroundImage = UIImage(named: name, inBundle: bundle, compatibleWithTraitCollection: nil)

    button!.setBackgroundImage(backgroundImage, forState: .Normal)
}

在iPhone模拟器上测试,它的工作非常好。但是当我在真正的iPhone 5S上运行时,backgroundImage总是为零。

enter image description here

我在4小时后调试时找不到原因,请帮助我,多谢。

Github项目:CKTextView

1 个答案:

答案 0 :(得分:0)

代码let bundle = NSBundle(forClass: CheckBoxListItem.self)

捆绑值为:/var/containers/Bundle/../CKTextView_Example.app/Frameworks/CKTextView.framework

' CKTextView.bundle'在CKTextView.framework中。

只需转发find bundle即可修复此错误。

关注代码:

let url = bundle.URLForResource("CKTextView", withExtension: "bundle", subdirectory: "", localization: "")  
let selfBundle = NSBundle(URL: url!)
let backgroundImage = UIImage(named: name, inBundle: selfBundle, compatibleWithTraitCollection: nil)