我使用pod lib create
创建项目。
CKTextView/Resources/CKTextView/Assets/image.xcassets
包含两个关于checkBox样式的图像。
我在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总是为零。
我在4小时后调试时找不到原因,请帮助我,多谢。
Github项目:CKTextView
答案 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)